changeset 0:0127effb8fcd

first commit
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 05 May 2015 15:36:41 +0900
parents
children e13be99f69b6
files .DS_Store paper/.DS_Store paper/Makefile paper/benchmark.tex paper/bib.tex paper/bibliography.tex paper/book.bib paper/cerium.bib paper/cerium.tex paper/cerium_gpu.tex paper/chapter1.tex paper/chapter2.tex paper/chapter3.tex paper/chapter4.tex paper/chapter5.tex paper/conclusion.tex paper/cuda.tex paper/dummy.tex paper/images/NodeToClient.pdf paper/images/TopologyFix.pdf paper/images/TopologyFix2.pdf paper/images/TopologyFix3.pdf paper/images/aquarium-after.pdf paper/images/aquarium-before.pdf paper/images/aquarium.graffle/data.plist paper/images/aquarium.graffle/image1.pdf paper/images/aquarium.graffle/image3.pdf paper/images/aquarium.pdf paper/images/bitonicsort.pdf paper/images/changeAliceVNC.pdf paper/images/changeServer.graffle paper/images/changeTreeVNC.pdf paper/images/compareTcpDelay.pdf paper/images/compare_100KB.pdf paper/images/compare_10B.pdf paper/images/comparenormalandtree.pdf paper/images/dsandcs.graffle paper/images/dsandcs.pdf paper/images/dsandcs2.graffle paper/images/dsandcs2.pdf paper/images/emblem-bitmap.pdf paper/images/keepAlive.pdf paper/images/multicast.pdf paper/images/remote_datasegment.graffle paper/images/remote_datasegment.pdf paper/images/sortflow.pdf paper/images/topologymanager.graffle paper/images/topologymanager.pdf paper/images/topologymanagerandnode.graffle paper/images/topologymanagerandnode.pdf paper/images/topologymanagerandnode1.pdf paper/images/topologymanagerandnode2.pdf paper/images/topologymanagerandnode3.pdf paper/images/topologyring.graffle paper/images/topologyring.pdf paper/images/torque.graffle paper/images/torque.pdf paper/images/treestructure.pdf paper/images/u-ryukyu-Mark.pdf paper/images/vnc.pdf paper/introduction.tex paper/ipsjcommon.sty paper/ipsjdrafts.sty paper/ipsjpapers.cls paper/ipsjpapers.sty paper/ipsjsort.bst paper/ipsjunsrt.bst paper/mediabb.sty paper/opencl.tex paper/sigos.aux paper/sigos.bbl paper/sigos.bib paper/sigos.blg paper/sigos.dvi paper/sigos.log paper/sigos.pdf paper/sigos.tex paper/source/CatchClosedEvent.java paper/source/CommandMessage.java paper/source/CommandMessageBefore.java paper/source/CreateByteBuffer.java paper/source/IncomingTcpConnection.java paper/source/MulticastIncrement.java paper/source/MulticastStartCodeSegment.java paper/source/ReceiveData.java paper/source/ReceiveTask.java paper/source/RegisterEvent.java paper/source/ShowData.java paper/source/ShowDataFailed.java paper/source/Singleton.java paper/source/Sort.java paper/source/StartAquariumFX.java paper/source/StartCodeSegment.java paper/source/TestCodeSegment.java paper/source/TopologyManager.sh paper/source/Torque.sh paper/source/asClass.java paper/source/flip.cc paper/source/flip.java paper/source/ring.dot presen/.DS_Store
diffstat 100 files changed, 21863 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file .DS_Store has changed
Binary file paper/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/Makefile	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,35 @@
+TARGET = sigos
+
+LATEX   = platex
+BIBTEX  = pbibtex
+#DVIPS   = dvips
+#DVIPDFM = dvipdfmx
+RM      = rm -f
+DVIPDF=dvipdfmx -p a4
+#  Option definitions
+#DVIPDFMOPT = 
+#DVIPSOPT   = -D 720 -mode esphi -O 0mm,0mm -N0 
+
+#  Suffixes definitions
+.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/benchmark.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,73 @@
+\section{Benchmark}
+本章では、WordCount, FFT を例題として用い、本研究で実装した GpuScheduler および CudaScheduler の測定を行う。
+
+測定環境
+\begin{itemize}
+\item OS : MacOS 10.9.2
+\item CPU : 2*2.66GHz 6-Core Intel Xeon
+\item GPU : NVIDIA Quadro K5000 4096MB
+\item Memory : 16GB 1333MHz DDR3
+\item Compiler : Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
+\end{itemize}
+
+\section{WordCount}
+今回は 100MB のテキストファイルに対して WordCount を行なった。
+表:\ref{table:wordcount}は実行結果である。
+
+\begin{table}[!h]
+  \begin{center}
+    \small
+    \begin{tabular}[t]{c||r} \hline
+      & Run Time \\ \hline
+      1 CPU & 0.73s \\ \hline
+      2 CPU & 0.38s \\ \hline
+      4 CPU & 0.21s \\ \hline
+      8 CPU & 0.12s \\ \hline
+      OpenCL(no pipeline) & 48.32s \\ \hline
+      OpenCL(pipeline) & 46.74s \\ \hline
+      OpenCL Data Parallel & 0.38s \\ \hline
+      CUDA(no pipeline) & 55.71s \\ \hline
+      CUDA(pipeline) & 10.26s \\ \hline
+      CUDA Data Parallel & 0.71s \\ \hline
+    \end{tabular}
+    \caption{WordCount}
+    \label{table:wordcount}
+  \end{center}
+\end{table}
+
+パイプライン処理を行うことで CUDA では5.4倍の性能向上が見られた。
+しかし、OpenCL ではパイプライン処理による性能向上が見られなかった。
+OpenCL と CUDA を用いたそれぞれの Scheduler はほぼ同等な実装である。
+OpenCL でパイプライン処理を行うために実行機構を見直す必要がある。
+一方で、データ並列による実行は 1CPU に対して OpenCL では1.9倍、CUDA では1.02倍という結果になった。
+どちらもタスク並列による実行よりは優れた結果になっている。
+CUDA によるデータ並列実行の機構を見直す必要がある。
+
+\subsection{FFT}
+次に、フーリエ変換と周波数フィルタによる画像処理を行う例題を利用し測定を行う。
+使用する画像のサイズは512*512で、画像に対して High Pass Filter をかけて変換を行う。
+表:\ref{table:fft}は実行結果である。
+
+\begin{table}[!h]
+  \begin{center}
+    \small
+    \begin{tabular}[t]{c||r} \hline
+      & Run Time \\ \hline
+      1 CPU & 0.48s \\ \hline
+      2 CPU & 0.26s \\ \hline
+      4 CPU & 0.17s \\ \hline
+      8 CPU & 0.11s \\ \hline
+      OpenCL & 0.09s \\ \hline
+      CUDA & 0.21s \\ \hline
+    \end{tabular}
+    \label{table:fft}
+    \caption{FFT}
+  \end{center}
+\end{table}
+
+1CPU に対して OpenCL ではの5.3倍、CUDA では2.2倍の性能向上が見られた。
+しかし、WordCount の場合と同様に OpenCL と CUDA で差がある。
+WordCount と FFT の結果から CudaScheduler によるデータ並列実行機構を見直す必要がある。
+また、FFT の OpenCL の kernel は cl\_float2 というベクター型を用いている。
+CUDA では cl\_float2 を float に変換して演算している。
+OpenCL ではベクターの演算なので、その部分に最適化がかかっており結果が良くなっている可能性がある。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/bib.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,2 @@
+\bibliographystyle{ipsjunsrt}
+\bibliography{sigos}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/bibliography.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,35 @@
+
+\begin{thebibliography}{10}
+
+\bibitem{akira}
+{Akira KAMIZATO.}: Cell を用いたゲームフレームワークの提案,琉球大学工学部情報工学科平成19年度学位論文(修士) (2008).
+
+\bibitem{FFTonGPU}
+{Yasuhiko OGATA, Toshio Endo, Naoya MARUYAMA, Satoshi MATSUOKA}:性能モデルに基づくCPU及びGPUを併用する効率的なFFTライブラリ,東京工業大学 (2008).
+
+\bibitem{toma:2012a}
+{Daichi TOMA and Shinji KONO}:Cerium Task Manager におけるマルチコア上での並列実行機構の実装(2012)
+
+\bibitem{gongo:2008a}
+{Wataru MIYAGUNI,Shinji KONO}:Cell 用の Fine-grain Task Manager の実装
+
+\bibitem{opencl:ref}
+{Aaftab Munshi, Khronos OpenCL Working Group}:The OpenCL Specification Version 1.0 (2007)
+
+\bibitem{cell}
+{Sony Corporation.}: {\em Cell broadband engine architecture} (2005).
+
+\bibitem{spurs}
+{Keisuke INOUE.}: Cell プロセッサ向け実行環境(SPU Centric Execution
+  Model),先進的計算基盤システムシンポジウム SACSIS (2006).
+
+\bibitem{kono}
+{Shinji KONO.}: 検証を自身で表現できるハードウェア、ソフトウェア記述言語
+  Continuation ba sed C と、その Cell
+  への応用,電子情報通信学会VLSI設計技術研究会 (2008).
+
+\bibitem{fuchita}
+{Yoshihiko, FUCHITA.}: 分散プログラミングモデル Federated Linda
+  と分散デバッグ開発,琉球大学工学部情報工学科平成19年度学位論文(修士) (2008).
+
+\end{thebibliography}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/book.bib	Tue May 05 15:36:41 2015 +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	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,315 @@
+@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
+}
+
+@manual{opencl:ref,
+author = "{Khronos OpenCL Working Group}",
+title ="{OpenCL 1.2 Reference Pages}",
+year = 2012
+}
+
+@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
+}
+
+@article{toma:2012a,
+        author = "當眞 大千 and 河野 真治",
+        title = "Cerium Task Manager におけるマルチコア上での並列実行機構の実装",
+        journal = " 第53回プログラミング・シンポジウム",
+        month = "Jan",
+        year = 2012
+}
+
+@article{yutaka:os,
+        author = "金城裕 and 河野真治 and 多賀野海人 and 小林佑亮(琉球大学)",
+        title = "ゲームフレームワークCerium TaskManagerの改良",
+        journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)",
+        month = "April",
+        year = 2011
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/cerium.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,116 @@
+\section{Cerium}
+Cerium は、当初 Cell 用の Fine-Grain Task Manager\cite{gongo:2008a} として当研究室で開発された。
+TaskManager, SceneGraph, Rendering Engine の3つの要素から構成されており、今では、PS3 および Linux, MacOS X 上で動作する。
+GPGPU の Data Parallel を含めて、同じ形式で並列プログラムを記述することができる。
+
+\subsection{Cerium TaskManager}
+TaskManager は、Task と呼ばれる分割されたプログラムを管理する。
+関数やサブルーチンを Task として扱い、Task 同士の依存関係を考慮しながら実行される。
+Task は TaskManager を使って生成する。
+Task を生成する際に、以下のような要素を設定することができる。
+
+\begin{itemize}
+  \item input data
+  \item output data
+  \item parameter
+  \item cpu type
+  \item dependency
+\end{itemize}
+
+input, output, parameter は関数でいうところの引数に相当する。
+cpy type は Task がどのようなの Device の組み合わせで実行されるかを示す。
+dependency は他の Task との依存関係を示している。
+
+\begin{figure}[!h]
+  \begin{center}
+    \includegraphics[scale=0.4]{./images/createTask.pdf}
+  \end{center}
+  \caption{Task Manager}
+  \label{fig:createTask}
+\end{figure}
+
+図:\ref{fig:createTask}は Cerium が Task を生成/実行する場合のクラスの構成である。
+TaskManager で依存関係が解消され、実行可能になった Task は ActiveTaskList に移される。
+ActiveTaskList に移された Task は依存関係が存在しないのでどのような順序で実行されても問題ない。
+Task は Scheduler に転送しやすい TaskList に変換してから cpy type に対応する Scheduler に Synchronized Queue である mail を通して転送される。
+Scheduler ではパイプラインで task が処理される(図:\ref{fig:task_scheduler})。
+Task が終了すると Scheduler から TaskManager に mail を通して通知される。
+その通知に従って依存関係が処理され、再び TaskManager から Scheduler に Task が転送される。
+
+\begin{figure}[!h]
+  \begin{center}
+    \includegraphics[scale=0.4]{./images/scheduler.pdf}
+  \end{center}
+  \caption{Task Scheduler}
+  \label{fig:task_scheduler}
+\end{figure}
+
+以下に Task を生成する例題を示す。
+表:\ref{table:TaskManager_api}は Task を生成に用いる API を示している。
+input データを2つ用意し、input データの各要素同士を乗算し、output に格納する multiply という例題である。
+
+\lstinputlisting[caption=multiply,label=test]{./source/multiply.cc}
+
+\begin{table}[htpb]
+  \begin{center}
+    \small
+    \begin{tabular}[htpb]{|c|l|} \hline
+      create\_task & Task を生成する \\ \hline
+      set\_inData  & Task への入力データのアドレスを追加 \\ \hline
+      set\_outData & Task からのデータ出力先アドレスを追加 \\ \hline
+      set\_param   & Task のパラメータ \\ \hline
+      wait\_for    & Task の依存関係 \\ \hline
+      set\_cpu     & Task を実行する Device の設定 \\ \hline
+      spawn        & Task を登録する \\ \hline
+      iterate      & データ並列で実行する Task として登録する \\ \hline
+    \end{tabular}
+    \caption{Task 生成に用いる API}
+    \label{table:TaskManager_api}
+  \end{center}
+\end{table}
+
+CPU で実行される Task(OpenCL, CUDA でいう kernel) の記述は以下のようになる。
+表:\ref{table:taskAPI}は Task 側で使用する API である。
+
+\lstinputlisting[caption=task,label=test]{./source/multiply_task.cc}
+
+\begin{table}[ht]
+  \begin{center}
+    \small
+    \begin{tabular}[t]{|c|l|} \hline
+      get\_input  & 入力データのアドレスを取得 \\ \hline
+      get\_output & データ出力先のアドレスを取得 \\ \hline
+      get\_param  & パラメータを取得 \\ \hline
+    \end{tabular}
+    \caption{ Task 側で使用する API }
+    \label{table:taskAPI}
+  \end{center}
+\end{table}
+
+\subsection{Cerium におけるデータ並列}
+Cerium でデータ並列による実行をサポートするために、OpenCL の API に合わせた iterate という API を用意した。
+iterate は length を引数として受け取り、Scheduler で length の値と受け取った引数の個数を次元数として Task 数を計算し、データ並列で実行する Task として生成する。
+
+例として、CPU 数4、一次元で10個のデータに対してデータ並列実行を行なった場合、各 CPU が担当する index は表:\ref{table:dpi}のようになる。
+
+\begin{table}[h]
+  \begin{center}
+    \small
+    \begin{tabular}[t]{c||c|c|c|c} \hline
+      &CPU0& CPU1&CPU2&CPU3 \\ \hline
+      1&0&1&2&3 \\ \hline
+      2&4&5&6&7 \\ \hline
+      3&8&9& & \\ \hline
+    \end{tabular}
+    \caption{Data 並列実行時の index の割り当て}
+    \label{table:dpi}
+  \end{center}
+\end{table}
+
+各 CPU が担当する index は SchedTask に格納してある。
+データ並列で実行する Task の記述は以下のようになる。
+
+\lstinputlisting[caption=example,label=test]{./source/multiply_task_dp.cc}
+
+並列プログラムでは、並列化する Task が全部同一であるということは少なくない。
+iterate を実装したことで、Task を生成する部分をループで回す必要はなくなり、OpenCL と同様に1つの記述で異なる index を持つ Task を Multi Core CPU 上で実行することが可能になった。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/cerium_gpu.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,54 @@
+\section{Cerium の GPGPU への対応}
+本章では、まずはじめに GPU プログラミングの特徴および問題について述べ、Cerium への実装でどのように対応したかについて説明する。
+
+\subsection{GPU プログラミングの特徴および問題}
+まず Multi Core CPU に対するプログラミングと同様に性能を向上させるためには、プログラム全体を対象とした並列度を高くしなければならない。
+明示的な並列化部分はループ部分である。
+GPU は数百個のコアを有しており、ループ部分に対してデータ並列で処理を行うことで CPU より高速で演算を行うことができる。
+プログラムの大部分がループであれば、データ並列による実行だけでプログラムの性能は向上する。
+しかし、多くのプログラムはその限りではない。
+GPGPU においてネックになる部分はデータ転送である。
+GPU の Memory 空間(図:\ref{fig:gpuarch})は CPU(図:\ref{fig:cpuarch}) とは異なり、Shared Memory ではないため host と device 間でデータの共有ができない。
+データにアクセスするためには Memory 空間ごとコピーするしかない。
+これが大きなオーバーヘッドになるので、データ転送をオーバーラップする必要がある。
+今回新たに、データ転送を自動でオーバーラップするように OpenCL および CUDA を用い Scheduler を実装した。
+
+\begin{figure}[htpd]
+  \begin{center}
+    \includegraphics[scale=0.35]{./images/gpu_arch.pdf}
+  \end{center}
+  \caption{Gpu Architecture}
+  \label{fig:gpuarch}
+\end{figure}
+
+\begin{figure}[htpd]
+  \begin{center}
+    \includegraphics[scale=0.7]{./images/cpu_arch.pdf}
+  \end{center}
+  \caption{Cpu Architecture}
+  \label{fig:cpuarch}
+\end{figure}
+
+\subsection{OpenCL および CUDA を用いた Scheduler の実装}
+Scheduler と CpuThreads に対応させる形で OpenCL を用いた GpuScheduler, GpuThreads、CUDA を用いた CudaScheduler, CudaThreads を実装した。
+TaskManager から転送された TaskList の情報をもとに device 上のメモリ領域を確保する。
+その後、OpenCL ならば CommandQueue、CUDA ならば Stream に Operation を発行していく。
+Operation は発行された順序で実行されるので、host から device へのデータ転送、kernel の実行、device から host へのデータ転送の順に発行する。
+非同期 API を用いることでデータ転送や kernel の実行を並列に行うことができる。
+通常、非同期 API を用いる場合は依存関係を考慮した同期が必要になるが転送されてくる Task の依存関係は TaskManager ですべて解消されているので Scheduler 側では順番を考えず Task を実行して問題ない。
+host から device へのデータ転送は、OpenCL では clEnqueueWriteBuffer、CUDA では cuMempcyHtoDAsync を用いて行われる。
+clEnqueueWriteBuffer は第三引数に CL\_FALSE を指定することで非同期なデータ転送を行う。
+転送されてきた TaskList からデータ並列またはタスク並列で実行するか決定する。
+データ並列で実行する場合は、OpenCL では clEnqueueTaskNDRangeKernel、CUDA では cuLaunchKernel を用いる。
+タスク並列で実行する場合は、OpenCL では clEnqueueTask、CUDA では cuLaunckKernel の引数を1に設定することで実行することができる。
+device から host へのデータ転送は、OpenCL では clEnqueuReadBuffer、CUDA では cuMemcpyDtoHAsync を用いて行われる。
+clEnqueueReadBuffer も clEnqueueWriteBuffer と同様に第三引数に CL\_FALSE を指定することで非同期実行となる。
+転送されてきた Task がすべて終了すると Synchronized Queue である mail を通して TaskManager に Task の終了を通知する。
+終了が通知されると TaskManager で依存関係が解消し、再び TaskList を転送する。
+GpuScheduler および CudaScheduler は複数の CommandQueue および Stream を持っており、パイプラインで実行される。
+
+kernel の記述は以下のようになる。
+\lstinputlisting[caption=multiply(OpenCL),label=test]{./source/Multi.cl}
+\lstinputlisting[caption=multiply(CUDA),label=test]{./source/Multiply.cu}
+
+修飾子など若干の違いはあるが、ほぼ同じ記述で書くことができるが CPU, OpenCL, CUDA のどれか1つの記述から残りのコードも生成できるようにすることが望ましい。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/chapter1.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,136 @@
+\section{分散フレームワーク Alice の概要}
+\subsection{Data SegmentとCode Segment}
+AliceはデータをData Segment、(以下DS)タスクをとCode Segment(以下CS)という単位に分割してプログラミングを行う。
+DSはAliceが内部にもつデータベースによって管理されている。DSに対応する一意のkeyが設定されており、そのkeyを用いてデータベースを操作する。
+
+CSは実行に必要なDSが揃うと実行されるという性質を持ち、入力されたDSに応じた結果が出力される。
+CSを実行するために必要な入力DSはInputDS、CSが計算を行った後に出力されるDSはOutput DSと呼ばれる。データの依存関係にないCSは並列実行が可能であるため、並列度を上げるためにはCSの処理内容を細かく分割して依存するデータを少なくするのが望ましい。
+
+\subsection{ComputationとMeta Computation}
+AliceのComputationは、keyで指し示されるDSを待ち合わせてCSを実行させると定義できる。
+それに対して、AliceのMeta Computationは、AliceのComputationを支えているComputationのプログラミングと定義できる。
+
+例えば、トポロジーを指定するAPIはMeta Computationである。Aliceが動作するためにはトポロジーを決める必要がある。つまりトポロジーの構成はAliceのComputationを支えているComputationとみなすことができる。トポロジーが決定するとそのトポロジーを構成する計算が行われる。トポロジーを指定するAPIはその構成の計算をプログラミングして変更するものである。
+他にも再接続の動作を決めるAPIや切断時の動作を決めるAPIはMeta Computationである。
+
+これらのMeta ComputationがAliceのComputationに影響することはない。プログラマーはCSを記述する際にトポロジーや切断、再接続という状況を予め想定した処理にする必要はない。プログラマーは目的の処理だけ記述する。そして、切断や再接続が起こった場合の処理を記述しMeta Computationで指定する。
+このようにプログラムすることで、通常処理と例外処理を分離することができるため、シンプルなプログラムを記述できる。
+
+\subsection{Data Segment}
+複数のスレッドから1つのデータに変更を行うためには、データの不整合を防ぐためのlockが必要になる。複数の関係のない要素を1つのデータオブジェクトで表現した場合、全ての操作でlockが必要になる。このlockがスケラビリティーを低下させる。つまりデータのサイズも並列計算には重要である。
+
+Aliceはデータを細かく分割して記述する。その細かく分割されたデータをDSと呼ぶ。
+実際には特定のオブジェクトにマッピングされ、マッピングされたクラスを通してアクセスされる。
+
+\subsection{Data Segment Manager}
+DSは実際にはqueueに保存される。queueには対になるkeyが存在し、keyの数だけqueueが存在する。
+このkeyを指定してDSの保存、取得を行う。queueの集合体はデータベースとして捉えられる。このデータベースをAliceではDS Manager(以下DSM)と呼ぶ。DSMにはLocal DSMとRemote DSMが存在する。Local DSMは各ノード固有のデータベースである。Remote DSMは他のノードのLocal DSMのproxyであり、接続しているノードの数だけ存在する。(図\ref{fig:RemoteDSM})Remote DSMに対して書き込むと対応するノードのLocal DSMに書き込まれる。
+
+\begin{figure}[htbp]
+\begin{center}
+\includegraphics[width=60mm]{images/remote_datasegment.pdf}
+\end{center}
+\caption{Remote DSMは他のノードのLocal DSMのproxy }
+\label{fig:RemoteDSM}
+\end{figure}
+
+\subsection{Data Segment API}
+以下のData Segment APIを用いてデータベースにアクセスする。
+putとupdateはDSを追加する際に、peekとtakeはDSを取得する際に使用する。
+
+\begin{itemize}
+\item \verb+void put(String key, Object val)+
+\end{itemize}
+DSをqueueに追加するためのAPIである。第一引数に対応するqueueに対してDSを追加している。
+begin{itemize}
+\item \verb+void update(String key, Object val)+
+\end{itemize}
+updateもqueueに追加するためのAPIである。putとの違いは、先頭のDSを削除してからDSを追加することである。そのためAPI実行前後でqueueの中にあるDSの個数は変わらない。
+
+begin{itemize}
+\item \verb+void take(String key)+
+\end{itemize}
+takeはDSを読み込むためのAPIである。読み込まれたDSは削除される。要求したDSが存在しなければ、CSの待ち合わせ (Blocking)が起こる。putやupdateによりDSに更新があった場合、takeが直ちに実行される。
+
+begin{itemize}
+\item \verb+void peek(String key)+
+\end{itemize}
+peekもDSを読み込むAPIである。takeとの違いは読み込まれたDSが削除されないことである。
+
+
+\section{Code Segment}
+Alice上で実行されるタスクの単位がCSである。ユーザーはCSを組み合わせることでプログラミングを行う。CSをユーザーが記述する際に、内部で使用するDSの作成を記述する。
+
+Input DS と Output DSはCSに用意されているAPIを用いて作成する。
+Input DSは、LocalかRemoteか、またkeyを指定する必要がある。CSは、記述したInput DSが全て揃うとThread poolに送られ、実行される。
+
+Output DSもLocalかRemoteか、またkeyを指定する必要がある。
+Inputの場合はsetKeyを呼ぶ際、Outputの場合はput(またはupdate)の際にノードとkeyの指定を行っている。
+しかし、どの時点でノードとkeyの指定を行えばよいか、どのようなAPIを用意するべきかは、議論の余地がある。
+
+\section{Code Segmentの記述方法}
+CSをユーザーが記述する際にはCSを継承して記述する(ソースコード \ref{src:StartCodeSegment} ,\ref{src:CodeSegment})。
+継承することによりCode Segmentで使用するAPIを利用する事ができる。
+
+\begin{table}[html]
+\lstinputlisting[label=src:StartCodeSegment, caption=StartCodeSegmentの例]{source/StartCodeSegment.java}
+\lstinputlisting[label=src:CodeSegment, caption=CodeSegmentの例]{source/TestCodeSegment.java}
+\end{table}
+
+Alice には、Start CS (ソースコード \ref{src:StartCodeSegment})というC の main に相当するような最初に実行される CS がある。
+Start CSはどのDSにも依存しない。つまりInput DSを持たない。
+このCSをmainメソッド内でnewし、executeメソッドを呼ぶことで実行を開始させることができる。
+
+ソースコード \ref{src:StartCodeSegment}は、5行目で次に実行させたいCS(ソースコード \ref{src:CodeSegment})を作成している。8行目でOutput DSMを通してLocal DSMに対してDSをputしている。
+Output DSMはCSの{\tt ods}というフィールドを用いてアクセスする。
+Output DSMは{\tt put}と{\tt update}を実行することができる。
+\begin{itemize}
+\item \verb+void put(String managerKey, String key, Object val)+
+\item \verb+void update(String managerKey, String key, Object val)+
+\end{itemize}
+TestCodeSegmentはこの"cnt"というkeyに対して依存関係があり、8行目でupdateが行われるとTestCodeSegmentは実行される。
+
+ソースコード\ref{src:CodeSegment}は、0から10までインクリメントする例題である。
+2行目で取得されたDSが格納される受け皿を作る。Input DSMがもつcreateメソッド使うことで作成できる。
+\begin{itemize}
+\item {\ttfamily Receiver create(CommandType type)}
+\end{itemize}
+
+引数にはCommandTypeが取られ、指定できるCommandTypeは{\tt PEEK}または{\tt TAKE}である。
+Input DSM はCSの{\tt ids}というフィールドを用いてアクセスする。
+
+4行目から6行目はコンストラクタである。コンストラクタはオブジェクト指向のプログラミング言語で新たなオブジェクトを生成する際に呼び出されて内容の初期化を行う関数である。
+
+TestCodeSegmentのコンストラクタが呼ばれた際には、
+\begin{enumerate}
+\item TestCodeSegmentが持つフィールド変数Receiver input1の定義が行われる。
+\item 次にCSのコンストラクタが呼ばれ、CSが持つフィールド変数の定義と初期化が行われる。
+\item {\tt ids.create(CommandType.TAKE)}が行われ、input1の初期化が行われる。
+\item 最後にTestCodeSegmentのコンストラクタの5行目が実行される。
+\end{enumerate}
+
+5行目はInput DSMがもつsetKeyメソッドによりLocal DSMからDSを取得している。
+\begin{itemize}
+\item \verb+void setKey(String managerKey, String key)+
+\end{itemize}
+setKeyメソッドにより、どのDSMのあるkeyに対してpeekまたはtakeコマンドを実行させるかを指定できる。コマンドの結果がレスポンスとして届き次第CSは実行される。
+
+runメソッドの内容としては10行目で取得されたDSをInteger型に変換してcountに代入している。
+16行目で もう一度TestCodeSegmentのCSが作られる。
+17行目でcountの値をインクリメントしてLocal DSMに値を追加する。
+13行目が終了条件であり、countの値が10になれば終了する。
+
+\section{Meta Data Segment}
+DSは、アプリケーションに管理されているデータのことである。アプリケーションを構成するCSによってその値は変更される。
+それに対してMeta DSは、分散フレームワークAliceが管理しているデータである。Aliceを構成するCSによってのみ、その値は変更される。一部のMeta DSはアプリケーションに利用することができる。
+
+例えば、"start"というkeyでは、ノードがStart CSを実行可能かどうかの状態を表す。他にも"\_CLIST"というkeyでは、利用可能なRemote DSの一覧が管理されている。ユーザーはこの一覧にある名前を指定することで、動的にDSの伝搬などを行うことができる。
+
+また、Input DSに付随しているものもある。Input DSはCS内部でReceiverという入れ物に格納される。ユーザーは、Receiverに対して操作することでDSを入手できる。
+このReceiverには、fromというフィールドがあり、このDSを誰がputしたという情報が入っている。この情報をデータの伝搬する際に利用することで、DSをputしたノードに送り返すことを防ぐことができる。
+
+Meta DSはDS同様にDS APIを用いて取得できる。
+
+\section{Meta Code Segment}
+CSはアプリケーションを動作させるために必要なタスクであり、ユーザーによって定義される。
+それに対してMeta CSはAliceを構成するタスクである。つまりMeta CSの群はAliceのComputationと言い換えることができる。一部のみユーザーが定義をすることができ、Aliceの挙動を変更することができる。
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/chapter2.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,21 @@
+\section{AliceVNC}
+AliceVNCは、当研究室で開発を行っているTreeVNCをAliceを用いて実装された、授業向け画面共有システムである。
+Aliceが実用的なアプリケーションを記述する能力をもつことを確認するために作成した。
+
+授業でVNCを使う場合、1つのコンピュータに多人数が同時につながるため、性能が大幅に落ちてしまう(図\ref{fig:vnc})。この問題をノード同士を接続させ、木構造を構成することで負荷分散を行い解決したものがTreeVNCである(図\ref{fig:treestructure})。TreeVNCは、TightVNCのソースコードを利用して開発されている。
+
+\begin{figure}[htbp]
+\begin{center}
+\includegraphics[width=60mm]{images/vnc.pdf}
+\end{center}
+\caption{VNCの構造 }
+\label{fig:vnc}
+\end{figure}
+
+\begin{figure}[htbp]
+\begin{center}
+\includegraphics[width=60mm]{images/treestructure.pdf}
+\end{center}
+\caption{TreeVNC, AliceVNCの構造 }
+\label{fig:treestructure}
+\end{figure}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/chapter3.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,182 @@
+\chapter{Aliceの新機能} \label{chapter:chapter3}
+水族館の例題によって、Aliceを用いて分散プログラムを記述可能であることを確認した。
+次に実用的なアプリケーションであるTreeVNCをAlice上で実装することで、Aliceに必要な機能を洗い出した。
+
+\section{Dynamic Topologyへの対応}
+第2章で示したように分散フレームワークAliceはTopology Fileを読み込むことでTopologyを構成する。
+つまり、予め参加するノードの台数が決まっている必要がある。また、Topologyに全ノードが参加するまでアプリケーションが起動しない。
+
+実際のアプリケーションでは、参加するノードの数は決まっておらず、Topologyを動的に変化させる必要がある。
+そこで、AliceにDynamic Topology Managerを追加した。
+
+Dynamic Topologyの場合は、新しくTopology Nodeがアプリケーションに参加するたびにTopology ManagerからTopology Nodeに対して、接続すべきTopology Nodeの情報がputされ接続処理が順次行われる。
+\section{Keep Alive}
+ノード間の通信は、Remote DSMに対してputやpeekを行うことでのみ発生する。アプリケーション次第では長時間通信が行われない可能性がある。通信が行われない間にRemote DSMとの接続が切れた場合、次の通信が行われるまで切断を発見することができない。また、接続状態ではあるが問題が発生し、応答に時間がかかる場合も考えられる。
+
+以上の問題を検知するためにアプリケーションではKeep Aliveという、定期的にheart beatを送り生存確認を行う機能を持つことが望ましい。そこで、Alice自体にKeep Aliveの機能を実装した。
+
+一定時間内にノードから応答がない場合、Keep Aliveにより、そのノードのRemote DSMが切断される。
+
+
+図 \ref{fig:keepAlive}は、keepAliveの処理をコミュニケーションダイアグラムで示したものである。
+keepAliveは、タスクとタスクを実行するTaskExecuterと実行順序を管理するSchedulerによって実装されている。
+タスクの種類には、{\tt PING}、{\tt CLOSE}、{\tt CREATE}があり、TaskExecuterは、タスクの種類に従って処理を行なう。
+{\tt PING}は、指定されたRemote DSMに対してheartbeatを送信する。
+{\tt CLOSE}は、指定されたRemote DSMを削除する。
+{\tt CREATE}は{\tt PING}のタスクを作成し、Schedulerに登録する。
+
+タスクを作成する際に実行時間の指定をする。Schedulerにタスクを登録すると、Schedulerはタスクの実行時間に従って、タスクを実行順に並び替える。
+\begin{figure}[htbp]
+\begin{center}
+\includegraphics{images/keepAlive.pdf}
+\end{center}
+\caption{keepAliveの仕組み}
+\label{fig:keepAlive}
+\end{figure}
+
+\subsubsection{処理の流れ}
+\begin{enumerate}
+\item CreateTask(Code Segment)により{\tt PING}タスクが投入される。\label{enum:putPingTask}
+\item TaskExecuterはSchedulerから次に実行すべき{\tt PING}タスクを受け取る。
+\item 指定された時間が訪れるとheartbeatがRemote DSM(Node B)に送信される。\label{enum:send}
+\item \ref{enum:send}と同時にheartbeatを送信したRemote DSMとの接続を切断する{\tt CLOSE}タスクが投入される。\label{enum:putCloseTask}
+\item \ref{enum:putCloseTask}で投入された{\tt CLOSE}タスクが実行されるまでに、Remote DSM(Node B)からのレスポンスがあった場合、RemoveTask(Code Segment)により{\tt CLOSE}タスクが削除される。
+%\item \ref{enum:putPingTask}に戻る。
+\end{enumerate}
+
+\ref{enum:putPingTask}で作られる{\tt PING}タスクは、接続しているRemote DSMの数だけ投入される。
+"\_CLSIT"というkeyには、アクセス可能なRemote DSMのkeyの一覧が保存されている。
+CreateTaskは、この一欄により動的にタスクを作成している。
+
+以上で説明した処理の流れは、接続状態に問題がない場合である。
+接続状態に問題があり、{\tt CLOSE}タスクの実行されるまでにレスポンスがない場合は、{\tt CLOSE}タスクによりRemote DSMが削除される。
+
+heartbeatは、Node AからNode Bに一方向に送られる訳ではなく、Node BからNode Aにも送られている。
+
+\section{切断時の処理}
+MMORPGでは、試合の最中にサーバーからユーザーが切断された場合、自動的にユーザーが操作するキャラクターをゲーム開始時の位置に戻すという処理が実行される。
+同様にTreeVNCでは切断を検知した場合、LostParentというメッセージがトップノードに対して送信される。
+
+以上の例のように、アプリケーションはノードの切断に対する処理を用意したい場合がある。
+しかし、Aliceを用いたアプリケーションの場合、アプリケーション側で検知するのは難しい。
+切断自体は、Remote DSMに対してwriteまたはreadを行った際に出るExceptionにより判断することができる。
+だが、I/O の処理はCode Segmentを実行するThreadで行われない。専用のI/O Threadによって行われるため、Code Segment内でExceptionを捕まえられず、例外処理を行なうことができない。
+
+そこで、Aliceが切断を検知した際に、任意のCode Segmentを実行できる機能 (ClosedEventManager)を追加した。
+ユーザはClosedEventManagerにCode Segmentを登録することで、切断時の処理として実行するCode Segmentを指定できる。
+\begin{table}[htbp]
+\lstinputlisting[label=src:registerEvent, caption=切断時に実行されるCode Segmentの登録方法]{source/RegisterEvent.java}
+\end{table}
+
+また、切断したRemote DSMの情報を利用したい場合は、Code Segmentをextends する代わりにClosed Event Code Segmentをextendsし、用意されているMethodを使うことで取得可能である(ソースコード \ref{src:CatchClosedEvent})。
+
+\begin{table}[htbp]
+\lstinputlisting[label=src:CatchClosedEvent, caption=CloseEventCodeSegmentを継承したCodeSegment]{source/CatchClosedEvent.java}
+\end{table}
+ClosedEventCodeSegmentを継承したCode Segmentに、Input Data Segmentを追加記述する事ができる。
+その際は、もちろんInput Data Segmentが全て揃うまでCode Segmentは実行されない。
+
+\section{Topologyの再構成}
+ノードは永続的にアプリケーションに参加し続ける訳ではない。目的を果たすとアプリケーションから離脱する。
+Topology次第では、アプリケーションに支障をきたす。
+例えば、AliceVNCは木構造であるため、子ノードを持つノードがアプリケーションから離脱した場合、その子ノードに対してデータを送信することができなくなる。
+
+この問題を解決するには、アプリケーションからノードが切断するたびにTopologyの再構成を行なう必要がある。そこで、Dynamic Topology Managerに、Topologyの再構成を行う機能を追加した。
+
+図 \ref{fig:TopologyFIx}、 \ref{fig:TopologyFIx2}、\ref{fig:TopologyFIx3}はTopologyの再構成をコラボレーションダイアグラムで表したものである。
+
+\begin{figure}[htbp]
+\begin{center}
+\includegraphics[width=120mm]{images/TopologyFIx.pdf}
+\end{center}
+\caption{切断ノードの検知}
+\label{fig:TopologyFIx}
+\end{figure}
+
+\begin{enumerate}
+\item Keep AliveがNode1の切断を検知すると、Node3からTopology Managerに対して切断したノードの情報がputされる。keep Aliveは各ノードで動いているため、実際にはNode0とNode4もTopology Managerに対してNode1の情報をputする。
+\item Topology Managerは最後にアプリケーションに参加したNode6とその親Node2に対して互いを切断するための準備を行わせる、CLOSEMESSAGEをputする。
+\item 切断する準備ができるとお互いに準備完了を知らせるCLOSEREADYをputする。
+\item \label {tb:last}CLOSEREADYを受け取ると切断を行い、Remote DSMが使用不可能になる。
+\end{enumerate}
+
+\begin{figure}[htbp]
+ \begin{minipage}{0.5\hsize}
+  \begin{center}
+   \includegraphics[width=90mm]{images/TopologyFix2.pdf}
+  \end{center}
+  \caption{接続すべきノード情報の送信}
+  \label{fig:TopologyFIx2}
+ \end{minipage}
+ \begin{minipage}{0.5\hsize}
+ \begin{center}
+  \includegraphics[width=80mm]{images/TopologyFix3.pdf}
+ \end{center}
+  \caption{再構成の完了}
+  \label{fig:TopologyFIx3}
+ \end{minipage}
+\end{figure}
+
+\begin{enumerate}
+\setcounter{enumi}{4}
+\item Node1、Node3、Node4に対してNode6の情報を送り、接続を行わせる。
+\item Node6に対して、Node1、Node3、Node4の情報を送り、接続を行わせる。
+\item お互いにRemote DSMの名前を贈り合い、Remote DSMが利用可能になる。
+\end{enumerate}
+
+\section{再接続の処理}
+MMORPGでは、試合の最中に障害などによりサーバーから離脱したユーザーが、試合が終わるまでに再びサーバーに接続してきた場合に、再びその試合に参加できるような再接続の処理が用意されている。
+
+分散にアプリケーションでは、MMORPGの例のように再接続してきたノードに対して通常の処理とは別の処理を行わせたい場合がある。そこで、Aliceに再接続してきたノードに、任意のCode Segmentを実行できる機能を追加した。ユーザーはconfigにCode Segmentを継承したClassを登録することで、再接続時に実行されるCode Segmentを指定することができる。
+
+\begin{table}[htbp]
+\lstinputlisting[label=src:StartAquarium, caption=再接続に実行するCode Segmentの登録方法]{source/StartAquariumFX.java}
+\end{table}
+
+\section{Multicast Data Segment}
+TreeVNCには、Multicastを利用して起動しているTreeVNCのRoot Nodeの情報の一覧にして表示する接続先自動検索システムという機能がある。この機能によりTreeVNCの起動の際にIPアドレスを入力する手間を省くことができる。
+
+現在のAliceは起動時にTopology ManagerのIPアドレスを入力する必要があり、TreeVNCの接続先自動検索機能が必要と考えられる。
+その機能を実現するためにはMulticastに対応する必要がある。そこで、同じマルチキャストアドレスを持つ端末を1つのData Segmentとして扱うMuticast Data Segmentを追加した。
+Multicast Data Segmentも他のData Segment同様、Data Segment APIを用いて扱う。
+
+\begin{figure}[htbp]
+\begin{center}
+\includegraphics[width=120mm]{images/multicast.pdf}
+\end{center}
+\caption{Multicast Data Segment}
+\label{fig:multicast}
+\end{figure}
+
+図 \ref{fig:multicast}はMulticast Data Segmentを図で表したものである。Node AのMulticast Data Segmentに対してputを行うとnode B、node C、node Dの3つのnodeに対してデータがputされる。同様にTakeを行うと3つのnodeからTakeに対する応答が来る。
+
+Multicast Data SegmentはUDPを用いて実装されている。1つのUDPのパケットで運ぶことのできるデータが、65507bytes(65535bytesからIPヘッダの最低サイズ20bytesとUDPのヘッダのサイズ8bytesを引いた大きさ)である。
+現状、分割して送る処理をMulticast Data Segmentが持たない。従って、Multicast Data Segmentを利用する際には、データのサイズを65507bytes以下にしなければならない。
+\section{Multicast Data Segment Manager}
+Multicast Data SegmentもRemote DSM同様Managerを経由して操作を行う。Multicast DSMを作成するとMulticast Data Segmentに対する送受信用のスレッドが作成される。
+
+\begin{itemize}
+\item {\ttfamily public static MulticastDataSegmentManager \\
+connectMulticast(String connectionKey ,String MCSTADDR, int port, String nis, SocketType type)}
+\end{itemize}
+
+DataSegment classのstaticメソッドである、connectMulticastを呼ぶことでMulticast DSMが作成される。
+第1引数はMulticast DSMへのアクセスするためのkeyを指定できる。第2引数はマルチキャストアドレスを、第3引数はポート番号を、第4引数はネットワークインターフェイスを指定する。第5引数はSocketTypeを指定する。
+SocketTypeには、{\tt Sender}と{\tt Receiver}と{\tt Both}が存在する。{\tt Sender}を指定した場合は、第2引数で指定したマルチキャストアドレスに対して送信処理を行うスレッドを作成する。{\tt Receiver}を指定した場合は、第2引数で指定したマルチキャストアドレスに対して送信されたデータを受信するスレッドを作成する。{\tt Both}は、送受信両方のスレッドを作成する。
+
+現在、Multicast Data Segmentは自動では作成されないため、ユーザー自身で作成する必要がある。
+
+ソースコード \ref {src:MulticastStartCodeSegment}と\ref {src:MulticastIncrement}は実際にMulticast Data Segmentを利用した例題である。送信側では送信専用のmulticast DSMを作成し、それに対して数字データを10回putしている。
+受信側では受信専用のmulticast DSMを作成し、送信されたDSを受け取り内容を表示している(ソースコード\ref {src:Receivemessage})。
+
+\begin{table}[htbp]
+\lstinputlisting[label=src:MulticastStartCodeSegment, caption=multicast DSの例題の送信側]{source/MulticastStartCodeSegment.java}
+\end{table}
+
+\begin{table}[htbp]
+\lstinputlisting[label=src:MulticastIncrement, caption=multicast DSの例題の受信側]{source/MulticastIncrement.java}
+\end{table}
+
+\begin{table}[htbp]
+\lstinputlisting[label=src:Receivemessage, caption=multicast DSMに対してsetKeyを行う]{source/ReceiveTask.java}
+\end{table}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/chapter4.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,133 @@
+\chapter{改善点} \label{chapter:chapter4}
+分散フレームワークAliceは、並列環境にも対応したフレームワークである。しかし、並列環境に対応していることを確認するためにbitonic sortを作成、計測したところ、Data Segmentの更新のオーバーヘッドにより、期待した効果を得ることができなかった。また、AliceVNCを開発する際にAliceの送受信部分に無駄なコピーが発見された。
+これらを解決するためにAliceに改善を行った。
+\section{SEDA Architecture}
+SEDA Architecture \cite{cassandra, seda}とはマルチコアスレッドを用いて大量の接続を管理し、受け取ったデータを処理ごとに分けられたステージと呼ばれるスレッドに投げ、処理が終わると次のステージにデータを伝搬させていく処理方式である。
+スループット重視のでありレスポンスは多段のパイプラインのせいで遅れてしまう。
+Aliceに置いてSEDAを実装するにあたり、データを次のステージにへ伝搬する際、LinkedBlockingQueueを使用している。LinkedBlockingQueueは片方向の連結リストをベースとしたQueue実装である。enqueue / dequeueの操作時の排他制御にはそれぞれ別々のロックオブジェクトが使用されている。そのため、enqueueとdequeueが重なってもロック解除待ちは発生しないが、そのかわりに連結リストのNodeオブジェクトの生成操作などが発生してしまうため、enqueue操作の処理コストが高い。
+さらに、非力なマシーンではSEDAの効果を得られず、スレッドを切り替えが頻繁に起こりオーバーヘッドになってしまう。
+
+以上の理由からLocal Data Segmentに対して操作をする際はSEDAを使用せず処理を行なうように変更した。
+変更前は、Local Data Segmentに対して操作する場合、putやpeekに沿ったCommandを作成するステージ(Code Segmentが実行されているスレッド)、受け取ったCommandを処理するステージ、Code SegmentにData Segmentをセットするステージ(peekとtakeの場合)の2段または3段のパイプラインで構成されていた。これらを1つのステージにまとめて処理することで、並列環境における性能を向上させた。
+
+\section{Data Segment の再構成(flip 機能の追加)}
+Data Segment APIのput、updateを呼ぶとOutput Data Segmentが毎回新しく作成される。そして出力するデータのコピーが行われる。しかし、Input Data Segmentとして取得したデータに変更を行い、Output Data Segmentとして出力する場合、コピーを行なうのは無駄である。そこで、このコピーを減らすことで速度改善を行った。
+
+このコピーを無くし、Data Segmentの更新におけるオーバーヘッドを減らす方法として並列タスク管理フレームワーク Cerium\cite{yutaka:2010a, yutaka:2011a, yutaka:2011b}でも良好な結果を得ているflipを用いた。Ceriumにおけるflipは、Input Data SegmentとOutput Data SegmentをswapさせるAPIである。(ソースコード \ref{src:flipCerium})
+
+\begin{table}[html]
+\lstinputlisting[label=src:flipCerium, caption=Ceriumにおけるflip]{source/flip.cc}
+\end{table}
+
+
+\begin{table}[html]
+\lstinputlisting[label=src:flipAlice, caption=Aliceにおけるflip]{source/flip.java}
+\end{table}
+
+\begin{table}[html]
+\lstinputlisting[label=src:exampleFlip,caption=flipの使用例]{source/Sort.java}
+\end{table}
+
+Ceriumの場合、Output Data SegmentはTaskが実行された段階ですでに用意されている。そのためデータをOutput Data Segmentに書き込む前にflipを呼ぶ。
+Aliceの場合、putまたはupdateを呼んだ段階でOutput Data Segmentが作られるため、ソースコード\ref{src:exampleFlip}のようにInput Data SegmentであるReceiverをflipメソッドに引数として渡すことで、無駄なコピーを減らす。
+
+\section{Data Segmentのデータ表現の追加}
+変更前はData Segmentのデータ表現はMessage Pack for JaveのValueオブジェクトのみを用いて表現していた。
+Valueオブジェクトとは、Message Packのバイナリにシリアライズできる型のみで構成されたJavaのオブジェクトであり、自己記述形式のデータ形式となっている。そのため、ArrayValueを用いることにより、ユーザーはデータを後からつなげたりすることも可能である。
+
+このValueオブジェクトの特徴の1つに、通信に関わる際のシリアライズ・デシリアライズを高速に行えることがある。
+この特徴を用いて、Remote Data Segmentに対する通信の高速化を狙っていた。
+
+しかし、Local Data Segmentに対する通信においては逆効果である。データをLocal Data Segmentに対してputするたびにValue型に変換するコストがかかる。データをpeekする際にもValue型から元の型に変換するというコストがかかる。
+
+この問題を解決するために、一般的なJavaのクラスオブジェクトでもデータ表現を可能にした。Local Data Segmentに対してputする場合は、Valueオブジェクトに変換せず一般的なJavaのクラスオブジェクトのままで、Remote Data Segmentに対してputする場合にのみValueに変換する。これにより、無駄な変換コストを抑えられるようになった。
+
+\section{Data Segmentのデータ表現の変更} \label {subsection:changeDSFormat}
+AliceVNCは、\ref {section:AliceVNC}で説明したように、当研究室で開発しているTreeVNCを分散フレームワークAliceを用いて実装した画面共有システムである。
+
+Topology Nodeは受け取った画面データを描画すると同時に、Remote Data Segmentに送信する。Remote Data Segmentに送信する際にはMessage PackによりValue型に変換し、その後シリアライズ化(byteArrayで表現されたバイナリに変換)される。Topology Nodeは受信するとデシリアライズしValue型に変換した後putされる。
+
+このValue型への変換が問題である。受け取ったデータを自分の子ノードに対して送信する際には、デシリアライズしValue型に変換する必要はない。シリアライズ状態のまま子ノードに送信すれば、Value型に変換するオーバーヘッドとValue型をシリアライズするオーバーヘッドを無くすことができる。そこで、Remoteからputされたデータ表現をValue型からbyteArrayで表現されたbinaryに変更した。また、Remoteにputする際にもValue型に変換せずに直接byteArrayに変換するように変換した。
+
+
+しかし、この変更で新しい問題が発生した。Remoteからputされたデータは必ずbyteArrayで表現される。しかし、putされたbyteArrayが全てシリアライズ化された状態であるとはいえない。一般的なJavaのクラスオブジェクトとしてbyteArrayが使用されている場合が存在する。例えば、AliceVNCで使われる画像データはbyteArrayで表現されているが、これはLocalからputされている。 Input Data Segmentが格納されるReceiverクラスには{\tt asClass()}というメソッドがある。
+
+\begin{itemize}
+\item \verb+public <T> T asClass(Class<T> clazz)+
+\end{itemize}
+
+このメソッドは取得したデータがRemoteからputされた場合、Value型でなっているためMessage Packを使い適切な型に変換するものである。しかし、byteArray型に変更したため、変換可否を判断することができなくなってしまった。
+
+ここからわかることは、データを表現するにはデータ単体をやりとりするだけでは不十分ということである。変更以前はValue型であるということが状態を表していた。しかし、一般的なJavaのクラスオブジェクトとbyteArrayで表現されたbinaryが混在する現在では、データと一緒にデータの状態を表すメタデータもやりとりする必要がある。そこで、データとデータの状態を1つのオブジェクトにまとめ扱うように変更した。(ソースコード\ref {src:ReceiveData})
+
+\begin{table}[html]
+\lstinputlisting[label=src:ReceiveData, caption=データを表現するクラス]{source/ReceiveData.java}
+\end{table}
+
+{\tt val}がデータ本体が保存格納される。{\tt serialized}と{\tt byteArray}がデータの状態を表すメタデータである。{\tt serialized}
+は、データ本体がシリアライズ化されているかを示す。{\tt byteArray}がデータ本体がbyteArrayであるかを示す。
+この2つの状態があることで{\tt asClass()}を使い、適切に変換することができる。(ソースコード\ref {src:asClass})
+
+\begin{table}[html]
+\lstinputlisting[label=src:asClass, caption=asClassの処理]{source/asClass.java}
+\end{table}
+
+asClassが行う処理は、Localからputされたデータ({\tt serialized}と{\tt byteArray}がfalseの場合または{\tt byteArray}のみtrueの場合)は、目的のClassにcastする。Remoteからputされたデータ({\tt serialized}がtrueの場合)はMessage Packを使い変換する。
+
+\subsubsection{Message Packの機能追加}
+通信入力部はMessage PackのUnpackerを用いる事により、ストリームを次から次へとデシリアライズすることができる。
+しかし、提供されているAPIは全てデシリアライズを行うものであり、シリアライズ状態のオブジェクトを取得することができない。そこでUnpackerにシリアライズ状態のオブジェクトを取得するメソッドを追加した。
+
+\begin{table}[html]
+\lstinputlisting[label=src:Incoming, caption=ByteBuffer作成部分]{source/IncomingTcpConnection.java}
+\end{table}
+ソースコード\ref {src:Incoming} は受け取ったデータをLocal Data Segmentに追加する処理である。
+getSerializedByteArrayメソッドでシリアライズ状態のオブジェクトを取得している。
+
+このメソッドの実装をもって、受け取ったデータをデシリアライズせずに、子ノードに渡すことが可能となった。
+
+\section{パケットの再設計}
+Aliceの通信の際には、CommandMessage.classのインスタンスをMessage Packによりシリアライズ化したものが送信される。
+つまり、CommandMessage.classがパケットの構造を表すものといえる。
+
+\begin{table}[html]
+\lstinputlisting[label=src:CommandMessageBefore, caption=変更前のCommandMessage]{source/CommandMessagebefore.java}
+\end{table}
+ソースコード\ref {src:CommandMessageBefore}が変更前のCommandMessageの内容である。表\ref{tb:variable}はCommandMessageの各変数が何を表しているかを示したものである。
+\begin{table}[htbp]
+\caption{CommandMessageの変数名の説明}
+\label{tb:variable}
+\begin{center}
+\begin{tabular} {|l|l|}
+  \hline
+  変数名&説明\\
+  \hline
+  type&CommandType {\tt PEEK, PUT}などを表す\\
+  \hline
+  seq&Data Segmentの待ち合わせを行っているCode Segmentを表すunique number\\
+  \hline
+  key&どのKeyに対して操作を行うか指定する\\
+  \hline
+  val&データ本体\\
+  \hline
+  quickFlag&SEDAを挟まずCommandを処理を行うかを示す\\
+  \hline
+  serialized&データ本体のシリアライズ状態を示す\\
+  \hline
+\end{tabular}
+\end{center}
+\end{table}
+
+このパケット構造に問題が存在する。DS本体はCommandMessageがシリアライズ化されるときにはすでに、シリアライズされている。つまり、このままCommandMessageをシリアライズ化を行うと、DS本体をもう1度シリアライズ化を行ってしまう。
+
+\begin{table}[html]
+\lstinputlisting[label=src:CommandMessage, caption=変更後のCommandMessage]{source/CommandMessage.java}
+\end{table}
+
+そこで、CommandMessageをソースコード\ref{src:CommandMessage}のように変更した。データ本体をCommandMessageのフィールドから外し、後からByteBufferにまとめることにより2度のシリアライズを防ぐ。(ソースコード\ref{src:convert})
+
+\begin{table}[html]
+\lstinputlisting[label=src:convert, caption=ByteBuffer作成部分]{source/CreateByteBuffer.java}
+\end{table}
+
+この実装ではCommandMessage部をヘッダーとして扱っている。データ部はCommandTypeが{\tt UPDATE、PUT、REPLY}の時のみ後から付加される。以前の実装ではbyte[]の値としてnullを示すNilValueがあるものとしてシリアライズ化されており、これもオーバーヘッドである。現在の実装にでは、CommandTypeが{\tt UPDATE、PUT、REPLY}以外はの時は、データ部をシリアライズ化しないため、nullをシリアライズ化するオーバーヘッドはなくなっている。
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/chapter5.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,171 @@
+\chapter{分散フレームワーク Alice の評価} \label{chapter:chapter5}
+この章では第\ref{chapter:chapter4}章で行った効果の測定、先行研究であるFedarated Lindaとの性能比較を行い、評価を行う。TreeVNCとAliceVNCの比較をコードの観点からも評価を行う。
+
+\section{機能の確認}
+水族館の例題でノードを意図的に切断した結果トポロジーの再構成が行わることを確認した。
+そして、切断したノードが再接続を行えることを確認した。
+また、再接続の挙動を変更するAPIによりMMORPGにあるような、前回の魚の位置から再開させることに成功した。
+
+
+\section{並列環境の改善効果の測定}
+第\ref{chapter:chapter4}章 の並列環境における改善効果をbitonic sortによる実験によって測定を行なう。
+
+\subsubsection{実験環境}
+コア数が少ないマシンでは、同時に走るCode Segmentが少ないことから、メニコア環境で実験を行った。
+\begin{table}[htbp]
+\caption{実行環境の詳細}
+\label{tb:MacPro}
+\begin{center}
+\begin{tabular} {|l|l|}
+  \hline
+  {\bf CPU}&Intel Xeon E5-1650 v2 @3.50GHz\\
+  \hline
+  {\bf 物理コア数}&6\\
+  \hline
+  {\bf CPU キャッシュ}&12MB\\
+  \hline
+  {\bf Memory}&16GB\\
+  \hline
+\end{tabular}
+\end{center}
+\end{table}
+\subsubsection{実験結果}
+100万の要素をもつ配列のSortにかかる時間を計測する。同時に走るCode Segmentが物理コア数と同じになるように、分割数は4個で行った。
+
+\begin{table}[html]
+\caption{bitonic sortの結果}
+\label{tb:result3}
+\begin{center}
+\begin{tabular}{|l|l|l|}
+\hline
+ & 改善前 & 改善後 \\ 
+ \hline
+ 実行時間 (ms)& 164.8 & 112.1 \\ 
+\hline
+\end{tabular} 
+\end{center}
+\end{table}
+
+\section{分散環境の改善効果の測定}
+第\ref{chapter:chapter4}章 の分散環境における改善効果をリングトポロジーによる実験によって測定を行なう。
+また、先行研究であるFederated Lindaとの比較も行う。
+
+\subsubsection{実験概要}
+リングのトポロジーを構成し、メッセージが 100 周する時間を計り、1周あたりの平均時間を求める実験である。(図 \ref{fig:topologyring})
+
+\begin{figure}[htbp]
+  \begin{center}
+    \includegraphics[width=120mm]{images/topologyring.pdf}
+  \end{center}
+  \caption{100周にかかる時間を計測し、1周あたりの平均時間を求める}
+  \label{fig:topologyring}
+\end{figure}
+
+実験では、トポロジーの構築時間は実験に含めてはいない。
+
+\subsubsection{実験環境}
+学科にある共用のブレードサーバ上の仮想マシンによる仮想クラスタ環境を用いて実験を行った。他の利用者とリソースが競合しないためにTORQUEジョブスケジューラを利用している。
+
+ブレードサーバーと仮想マシンの性能はそれぞれ表 \ref{tb:blade}、表 \ref{tb:virtual}である。
+
+\begin{table}[htbp]
+\caption{ブレードサーバーの詳細}
+\label{tb:blade}
+\begin{center}
+\begin{tabular} {|l|l|}
+  \hline
+  {\bf マシン台数}&8台\\
+  \hline
+  {\bf CPU}&Intel(R) Xeon(R) X5650 @ 2.67GHz\\
+  \hline
+  {\bf 物理コア数}&12\\
+  \hline
+  {\bf 論理コア数}&24\\
+  \hline
+  {\bf CPU キャッシュ}&12MB\\
+  \hline
+  {\bf Memory}&132GB\\
+  \hline
+\end{tabular}
+\end{center}
+\end{table}
+
+\begin{table}[htbp]
+\caption{仮想クラスタの詳細}
+\label{tb:virtual}
+\begin{center}
+\begin{tabular} {|l|l|}
+  \hline
+  {\bf マシン台数}&48台\\
+  \hline
+  {\bf CPU}&Intel(R) Xeon(R) X5650 @ 2.67GHz\\
+  \hline
+  {\bf 物理コア数}&2\\
+  \hline
+  {\bf 仮想コア数}&4\\
+  \hline
+  {\bf CPU キャッシュ}&12MB\\
+  \hline
+  {\bf Memory}&8GB\\
+  \hline
+\end{tabular}
+\end{center}
+\end{table}
+
+
+\subsubsection{改善効果とFederated Lindaとの比較}
+データのサイズは10Bと100KBで実験を行った。10Bの結果は図\ref{fig:compare_10B}、100KBの結果は図\ref{fig:compare_100KB}である。
+\begin{figure}[htbp]
+  \begin{center}
+    \includegraphics[width=140mm]{images/compare_10B.pdf}
+  \end{center}
+  \caption{10 bytes のデータを 100 周させたときの 1 周にかかる平均時間}
+  \label{fig:compare_10B}
+
+  \begin{center}
+    \includegraphics[width=140mm]{images/compare_100KB.pdf}
+  \end{center}
+  \caption{100 Kbytes のデータを 100 周させたときの 1 周にかかる平均時間}
+  \label{fig:compare_100KB}
+\end{figure}
+
+10Bと100KBの両方の結果でAliceに行った改善の効果を確認することができる。
+45台を使用した実験では10Bの小さいパットの場合では17%、100KBの大きいパケットの場合では12%程度高速化することができた。
+Federated Lindaと改善後の比較では、10Bの場合でAliceのほうが20%程遅い。しかし、100KBの場合ほとんど差がないことがわかる。
+
+\subsubsection{TCP\_NODELAY有無の比較}
+TCPはデフォルトで、Nagleアルゴリズムを使用している。Nagleアルゴリズムは、小さいパケットを集めてまとめて送信することで、送信するパケット数を減らし効率性をあげるアルゴリズムである。このアルゴリズムの有無により実験結果に影響はないことを確認した。
+
+\section{考察}
+今回の結果から、Aliceは先行研究であるFederated Lindaと同等の性能を持つことが確認できた。
+また、並列性能の改善と分散性能の改善の両方に効果があることを確認できた。
+両方に共通して行った改善として、複数のSEDAのステージをまとめて1つのステージにしたことがあげられる。
+SEDAが実行結果に大きく影響を与えていることが分かる。
+
+10Bの実験でFederated Lindaに及ばない理由としてもSEDAが原因と考えられる。
+リングの実験は並列処理を行なう部分がないシーケンシャルな実験であるため、全ての処理は直列的に実行される。SEDAによるThreadの切り替えが発生する分Aliceの実行速度は遅くなる。
+100KBの実験ではData Segmentの送受信にかかる時間に比べ、Threadの切り替えの時間が無視できる程度小さいため、Federated Lindaと同じグラフとなる。
+
+AliceがFederated Lindaに対して優位な点は、マルチコアによる並列実行である。従って、複数のCode Segmentが同時に走る実験では、小さなパケットの場合でもFederated Lindaに勝つことができると予想される。
+
+\section{TreeVNCとのCodeの比較}
+ここでは授業向け画面共有システムであるTreeVNCとそれをAlice上で実装したAliceVNCをソースコードの面から比較した。
+TreeVNCとAliceVNCのソースコードに対してwcを行い、TightVNCからどの程度コードが増加しているかを調べた。(表\ref {tb:diffwordCount})
+
+\begin{table}[htbp]
+\begin{center}
+\begin{tabular} {|l|r|r|}
+  \hline
+   {\bf }&行数&単語数\\
+  \hline
+  {\bf TreeVNC}&5049&14191\\
+  \hline
+  {\bf AliceVNC}&989&2355\\
+  \hline
+\end{tabular}
+\end{center}
+\caption{コードの増加量}
+\label{tb:diffwordCount}
+\end{table}
+
+AliceVNCはTreeVNCの20\%の行数で記述できることがわかる。コード量が少なければ管理する手間が少ないためプログラマー負担を減らすことができる。つまり、Aliceを使うことでプログラマーの負担を80\%減らすことができる。
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/conclusion.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,49 @@
+\chapter{結論} \label{chapter:conclusion}
+
+\section{まとめ}
+本研究では、まずはじめにAliceの計算モデルと実装について説明を行い、Aliceにおけるプログラミング手法を述べた。
+次に、今回新たに追加した動的なトポロジーの作成の機能とAliceのComputationを変更するMeta Computationについて説明を行った。
+そして、追加した機能を用いて実際に例題を記述することで、その有効性を示した。
+改善点では例題を記述する際に発見された問題点について並列と分散両方の観点から説明し、その改善を示した。
+
+最後に、今回行った改善点の効果を測るためリングトポロジー上での実験を行った。また、先行研究であるFederated Lindaとの性能比較を行い、同程度の性能を持つことを確認した。また、TreeVNCとAliceVNCをコードの量という観点から評価を行った。
+
+
+\section{今後の課題}
+\subsection{データの永続性の確保}
+現在のAliceは、On memoryであるためプロセスの終了とともにData Segmentは全て失われてしまう。
+
+この問題を解決するためには、Data Segmentを他のKey Value Store等のシステムに保存し、永続性を確保する昼用がある。また、JungleのようにLogファイルとして出力することでも解決ができる。
+
+\subsection{DataSegmentKeyの領域分け}
+現在Meta Data SegmentとData Segmentは、同じKey Value Queueで管理されている。つまり、Data Segment APIを用いれば、誰でもMeta Data Segmentを変更することができてしまう。Meta Data SegmentにAliceの状態を表すものがあるため、ユーザーによる変更は望ましくない。また、ユーザーが意図せずMeta Data Segment Keyに対して、putすることも考えられる。そして、Meta Code Segmentがactiveになりエラーを起こす。Meta Code Segmentでエラーが起こった場合、ソースコードを見ることができないため解決しづらい。
+
+このようなエラーを防ぐためにMeta Data SegmentとData Segmentの領域を分ける必要がある。Data Segmentを分けることによりKeyの重複によるエラーをアプリケーションレベルにすることができる。しかし、領域を分けるだけでは足りない。領域をわけることで解決することができるのはputまたはupdateの場合だけである。Meta Data Segmentを取得する際にtakeを使用した場合Meta Data SegmentがQueueから取り除かれてしまう。この問題に対処するためには権限をCode Segmentに対して設定する必要がある。その権限により、takeと記述しても実際にはpeekを行うようにすることができる。
+
+\subsection{記述に関する注意点}
+\subsubsection{setKey のシンタックス問題}
+setKeyメソッドをコンストラクタで呼ぶ際、setKeyメソッドを必ず最後に呼ばなければならない。
+
+Code Segmentは内部で実行に必要なData Segmentを数えている。Data Segmentの取得に成功するとこの値が、デクリメントされ、0になると必要なData Segmentが全て揃ったことと判断される。全て揃った際にはThread poolへ送られる。
+
+setKey移行に処理を記述した場合、その処理が行われない可能性がありThread poolへと送られNullPointerExceptionを引き起こす。
+
+\begin{table}[html]
+\lstinputlisting[label=src:NullPointerException,caption=NullPointerExceptionになる可能性がある]{source/ShowDataFailed.java}
+\end{table}
+
+ソースコード\ref{src:NullPointerException}は、for文でsetKeyとids.createをcntの回数呼び、動的にData Segmentの取得数を決めようとしている。しかし、setKeyが最初に呼ばれた際に、Data Segmentの取得に成功すると実行可能と判断されてしまう。runの中でinfoの配列の要素だけ中身を表示させようとしてるが、2回目のasClassでNullPointExceptionを引き起こす。今回の場合、コンストラクタ内をソースコード\ref{src:success}のように記述する必要がある。
+
+\begin{table}[html]
+\lstinputlisting[label=src:success,caption=NullPointerExceptionにならない記述]{source/ShowData.java}
+\end{table}
+
+この問題は現状のコンストラクタ内でsetKeyを行う方法ではCode Segmentのインスタンスを扱うことができないことを意味する。インスタンス化ができないためCloseEventManagerに登録するCode SegmentはClassで指定しなければならない。setKeyをどのタイミングで呼ぶべきか考えなおす必要がある。
+
+\subsubsection{singleton Code Segment}
+Javaには、クラスのインスタンスを1つに限定するSingletonパターンがある。Code SegmentにSingletonパターンを使用したい場合があり得る。その場合、setKeyを行なう前に{\tt ids.init()}を行なう必要がある。先ほどのsetKeyのシンタックス問題でも述べたが、Code Segmentは内部で実行に必要なData Segmentを示す値がある。一度実行された状態のCode Segmentと新しくインスタンスを作成した場合のCode Segmentでは、値が違うため{\tt ids.init()}を呼ばずにsetKeyを行なうとData Segmentが揃ったにもかかわらずCode Segmentが実行されない。そのためsetKeyを呼ぶ前に{\tt ids.init()}を呼び内部の値を初期化する必要がある。(ソースコード\ref{src:Singleton})
+
+
+\begin{table}[html]
+\lstinputlisting[label=src:Singleton,caption=setKeyを呼ぶ前にinitを呼ぶ必要がある。]{source/Singleton.java}
+\end{table}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/cuda.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,50 @@
+\section{CUDA}
+CUDA とは、半導体メーカー NVIDIA 社が提供する GPU コンピューティング向けの総合開発環境でコンパイラ、ライブラリ、デバッガなどから構成される。プログラミング言語である CUDA C は C 言語ベースに拡張を加えたものである。
+
+CUDA には CUDA Runtime API と CUDA Driver API の2種類がある。
+Driver API は Runtime API に比べてプログラマが管理すべきリソースが多い。
+しかし、Runtime API より柔軟な処理を行うことができる。
+今回は Driver API を使用して実装した。
+
+CUDA も OpenCL と同様に、制御を行う CPU 側を host、GPU 側を device と定義している。
+また、device 上で動作するプログラムも OpenCL と同様に kernel と呼ぶ。
+
+\subsection{Stream}
+CUDA には OpenCL の CommandQueue と似たような仕組みとして Stream がある。
+Stream は host 側で発行された Operation を一連の動作として device で実行する。
+Stream に発行された Operation は発行された順序で実行されることが保証されている。
+異なる Stream に発行された Operation に依存関係が存在しない場合、Operation を並列に実行することができる。
+
+Stream は cuStreamCreate という Driver API で生成される。
+引数に Stream を指定しない API はすべて host 側をブロックする同期的な処理となる。
+複数の Stream を同時に走らせ Operation を並列に実行するためには非同期な処理を行う API を利用する必要がある。
+
+\subsection{Data Parallel Execution}
+CUDA では OpenCL の WorkItem に相当する単位を thread と定義している。
+この thread をまとめたものを block と呼ぶ。
+CUDA でデータ並列による kernel 実行をする場合、cuLaunchKernel API を使用する。
+この関数は引数として各座標の block 数と各座標の block 1つ当たりの thread 数を指定することでデータ並列で実行できる。
+
+cuLaunckKernel で kernel を実行すると各 thread に対して block ID と thread ID が割り当てられる。
+CUDA には OpenCL とは異なり、ID を取得する API は存在しない。
+代わりに、kernel に組み込み変数が準備されており、それを参照し、対応するデータに対し処理を行うことでデータ並列を実現する。
+組み込み変数は以下の通りである。
+
+\begin{itemize}
+  \item uint3 blockDim
+  \item uint3 blockIdx
+  \item uint3 threadIdx
+\end{itemize}
+
+各組み込み変数はベクター型で、blockDim.x とすると x 座標の thread 数を参照することができる。
+blockIdx.x とすると x 座標の block ID が参照でき、threadIdx.x とすると x 座標の thread ID を参照することができる。
+blockDim.x * blockIdx.x + threadIdx.x で OpenCL の get\_global\_id(0) で取得できる ID に相当する ID を算出することができる。
+例として、ある kernel で get\_global\_id(0) の返り値が13の場合、CUDA では図:\ref{fig:calculate_index}のようになる。
+
+\begin{figure}[!h]
+  \begin{center}
+    \includegraphics[scale=0.4]{./images/culculate_index.pdf}
+  \end{center}
+  \caption{Calculate Index}
+  \label{fig:calculate_index}
+\end{figure}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/dummy.tex	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,60 @@
+%%% jdummy.def
+%
+\DeclareRelationFont{JY1}{mc}{it}{}{OT1}{cmr}{it}{}
+\DeclareRelationFont{JT1}{mc}{it}{}{OT1}{cmr}{it}{}
+\DeclareFontShape{JY1}{mc}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*min
+    <10.95><12><14.4><17.28><20.74><24.88> min10
+    <-> min10}{}
+\DeclareFontShape{JT1}{mc}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*tmin
+    <10.95><12><14.4><17.28><20.74><24.88> tmin10
+    <-> tmin10}{}
+\DeclareRelationFont{JY1}{mc}{sl}{}{OT1}{cmr}{sl}{}
+\DeclareRelationFont{JT1}{mc}{sl}{}{OT1}{cmr}{sl}{}
+\DeclareFontShape{JY1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*min
+    <10.95><12><14.4><17.28><20.74><24.88> min10
+    <-> min10}{}
+\DeclareFontShape{JT1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*tmin
+    <10.95><12><14.4><17.28><20.74><24.88> tmin10
+    <-> tmin10}{}
+\DeclareRelationFont{JY1}{mc}{sc}{}{OT1}{cmr}{sc}{}
+\DeclareRelationFont{JT1}{mc}{sc}{}{OT1}{cmr}{sc}{}
+\DeclareFontShape{JY1}{mc}{m}{sc}{<5> <6> <7> <8> <9> <10> sgen*min
+    <10.95><12><14.4><17.28><20.74><24.88> min10
+    <-> min10}{}
+\DeclareFontShape{JT1}{mc}{m}{sc}{<5> <6> <7> <8> <9> <10> sgen*tmin
+    <10.95><12><14.4><17.28><20.74><24.88> tmin10
+    <-> tmin10}{}
+\DeclareRelationFont{JY1}{gt}{it}{}{OT1}{cmbx}{it}{}
+\DeclareRelationFont{JT1}{gt}{it}{}{OT1}{cmbx}{it}{}
+\DeclareFontShape{JY1}{mc}{bx}{it}{<5> <6> <7> <8> <9> <10> sgen*goth
+    <10.95><12><14.4><17.28><20.74><24.88> goth10
+    <-> goth10}{}
+\DeclareFontShape{JT1}{mc}{bx}{it}{<5> <6> <7> <8> <9> <10> sgen*tgoth
+    <10.95><12><14.4><17.28><20.74><24.88> tgoth10
+    <-> tgoth10}{}
+\DeclareRelationFont{JY1}{gt}{sl}{}{OT1}{cmbx}{sl}{}
+\DeclareRelationFont{JT1}{gt}{sl}{}{OT1}{cmbx}{sl}{}
+\DeclareFontShape{JY1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*goth
+    <10.95><12><14.4><17.28><20.74><24.88> goth10
+    <-> goth10}{}
+\DeclareFontShape{JT1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*tgoth
+    <10.95><12><14.4><17.28><20.74><24.88> tgoth10
+    <-> tgoth10}{}
+\DeclareRelationFont{JY1}{gt}{sc}{}{OT1}{cmbx}{sc}{}
+\DeclareRelationFont{JT1}{gt}{sc}{}{OT1}{cmbx}{sc}{}
+\DeclareFontShape{JY1}{mc}{bx}{sc}{<5> <6> <7> <8> <9> <10> sgen*goth
+    <10.95><12><14.4><17.28><20.74><24.88> goth10
+    <-> goth10}{}
+\DeclareFontShape{JT1}{mc}{bx}{sc}{<5> <6> <7> <8> <9> <10> sgen*tgoth
+    <10.95><12><14.4><17.28><20.74><24.88> tgoth10
+    <-> tgoth10}{}
+\DeclareRelationFont{JY1}{gt}{it}{}{OT1}{cmr}{it}{}
+\DeclareRelationFont{JT1}{gt}{it}{}{OT1}{cmr}{it}{}
+\DeclareFontShape{JY1}{gt}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*goth
+    <10.95><12><14.4><17.28><20.74><24.88> goth10
+    <-> goth10}{}
+\DeclareFontShape{JT1}{gt}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*tgoth
+    <10.95><12><14.4><17.28><20.74><24.88> tgoth10
+    <-> tgoth10}{}
+\endinput
+%%%% end of jdummy.def
Binary file paper/images/NodeToClient.pdf has changed
Binary file paper/images/TopologyFix.pdf has changed
Binary file paper/images/TopologyFix2.pdf has changed
Binary file paper/images/TopologyFix3.pdf has changed
Binary file paper/images/aquarium-after.pdf has changed
Binary file paper/images/aquarium-before.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/aquarium.graffle/data.plist	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,620 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle6</string>
+		<string>156.11.0.206384</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {1676.9999198913574, 1566}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2012-02-07 06:56:51 +0000</string>
+	<key>Creator</key>
+	<string>Kazuki AKAMINE</string>
+	<key>DisplayScale</key>
+	<string>1 in = 1 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>11</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{824.53227665706208, 777.01499999999896}, {138.44610951008639, 58.859999999999765}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>32</real>
+			</dict>
+			<key>ID</key>
+			<integer>1870</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client3}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{13.500000000000483, 772.72312499999873}, {138.44610951008639, 58.859999999999765}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>32</real>
+			</dict>
+			<key>ID</key>
+			<integer>1869</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client1}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{419.01613832852979, 772.72312499999873}, {138.44610951008639, 58.859999999999765}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>32</real>
+			</dict>
+			<key>ID</key>
+			<integer>1868</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client2}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{13.500000000000227, 467.99999999999932}, {1217.2500000000007, 363.58312499999857}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>1867</integer>
+			<key>ImageID</key>
+			<integer>3</integer>
+			<key>ManualSizeImage</key>
+			<string>YES</string>
+			<key>Scale</key>
+			<real>0.4999999888241291</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{818.91959654178788, 319.2134831460674}, {138.44610951008616, 58.78651685393249}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>32</real>
+			</dict>
+			<key>ID</key>
+			<integer>1866</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client3}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{419.01613832853093, 319.2134831460674}, {138.44610951008616, 58.78651685393249}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>32</real>
+			</dict>
+			<key>ID</key>
+			<integer>1865</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client2}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{13.50000000000162, 319.2134831460674}, {138.44610951008616, 58.78651685393249}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>32</real>
+			</dict>
+			<key>ID</key>
+			<integer>1863</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720\qc
+
+\f0\fs64 \cf0 Client1}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{13.499999999999659, 10.125000000000114}, {1217.2500000000002, 367.87499999999932}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>1862</integer>
+			<key>ImageID</key>
+			<integer>1</integer>
+			<key>ManualSizeImage</key>
+			<string>YES</string>
+			<key>Scale</key>
+			<real>0.4999999888241291</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>3</integer>
+	<key>ImageCounter</key>
+	<integer>4</integer>
+	<key>ImageLinkBack</key>
+	<array>
+		<dict/>
+		<dict/>
+	</array>
+	<key>ImageList</key>
+	<array>
+		<string>image3.pdf</string>
+		<string>image1.pdf</string>
+	</array>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>レイヤー 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoLineLength</key>
+		<real>0.20000000298023224</real>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2015-01-30 08:01:32 +0000</string>
+	<key>Modifier</key>
+	<string>YuSugimoto</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{594.99997329711914, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>キャンバス 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>2</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>BottomSlabHeight</key>
+		<real>714</real>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>Expanded_Canvases</key>
+		<array/>
+		<key>Frame</key>
+		<string>{{100, 0}, {1744, 1058}}</string>
+		<key>ShowInfo</key>
+		<true/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>230</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 52.293577981651374}, {1098.1651376146788, 840.36697247706422}}</string>
+		<key>Zoom</key>
+		<real>1.0900000000000001</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>キャンバス 1</string>
+				<real>1.0900000000000001</real>
+				<real>1.0900000333786011</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file paper/images/aquarium.graffle/image1.pdf has changed
Binary file paper/images/aquarium.graffle/image3.pdf has changed
Binary file paper/images/aquarium.pdf has changed
Binary file paper/images/bitonicsort.pdf has changed
Binary file paper/images/changeAliceVNC.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/changeServer.graffle	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,1840 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle6</string>
+		<string>156.11.0.206384</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {558.99997329711914, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2012-02-09 04:46:08 +0000</string>
+	<key>Creator</key>
+	<string>Kazuki AKAMINE</string>
+	<key>DisplayScale</key>
+	<string>1 in = 1 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>11</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{76.911926638264305, 394.875}, {167, 82}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>82</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Align</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720
+
+\f0\fs32 \cf0 S : VNC Server\
+R : Root Node\
+N : Node\
+NS : Next VNC Server}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>71</integer>
+			</dict>
+			<key>ID</key>
+			<integer>80</integer>
+			<key>Points</key>
+			<array>
+				<string>{297.16192663826433, 113.625}</string>
+				<string>{139.625, 140.83332773711967}</string>
+				<string>{95.786926638264333, 271.68750000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<false/>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>Pattern</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>63</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>74</integer>
+			</dict>
+			<key>ID</key>
+			<integer>79</integer>
+			<key>Points</key>
+			<array>
+				<string>{297.16192663826433, 113.625}</string>
+				<string>{365.78692663826433, 192.65625}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>63</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>76</integer>
+			</dict>
+			<key>ID</key>
+			<integer>78</integer>
+			<key>Points</key>
+			<array>
+				<string>{365.78692663826433, 192.65625}</string>
+				<string>{419.78692663826433, 271.68750000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>74</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>75</integer>
+			</dict>
+			<key>ID</key>
+			<integer>77</integer>
+			<key>Points</key>
+			<array>
+				<string>{365.78692663826433, 192.65625}</string>
+				<string>{338.78692663826433, 271.68750000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>74</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{393.34942663826433, 245.81250000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>76</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{312.34942663826433, 245.81250000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>75</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{339.34942663826433, 166.78125}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>74</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{69.349426638264333, 245.81250000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>71</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 NS}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>68</integer>
+			</dict>
+			<key>ID</key>
+			<integer>70</integer>
+			<key>Points</key>
+			<array>
+				<string>{236.41192663826433, 192.65625}</string>
+				<string>{257.78692663826433, 271.68750000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>65</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>67</integer>
+			</dict>
+			<key>ID</key>
+			<integer>69</integer>
+			<key>Points</key>
+			<array>
+				<string>{236.41192663826433, 192.65625}</string>
+				<string>{176.78692663826433, 271.68750000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>65</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{231.34942663826433, 245.81250000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>68</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{150.34942663826433, 245.81250000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>67</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>65</integer>
+			</dict>
+			<key>ID</key>
+			<integer>66</integer>
+			<key>Points</key>
+			<array>
+				<string>{297.16192663826433, 113.625}</string>
+				<string>{236.41192663826433, 192.65625}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>63</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{209.97442663826433, 166.78125}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>65</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>63</integer>
+			</dict>
+			<key>ID</key>
+			<integer>64</integer>
+			<key>Points</key>
+			<array>
+				<string>{297.16192663826433, 32.625}</string>
+				<string>{297.16192663826433, 113.625}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>62</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{270.72442663826433, 87.75}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>63</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 R}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{270.72442663826433, 6.75}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>62</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 S}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>55</integer>
+			</dict>
+			<key>ID</key>
+			<integer>60</integer>
+			<key>Points</key>
+			<array>
+				<string>{313.83361883102475, 501.75}</string>
+				<string>{382.45861883102481, 580.78125}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>40</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>57</integer>
+			</dict>
+			<key>ID</key>
+			<integer>59</integer>
+			<key>Points</key>
+			<array>
+				<string>{382.45861883102481, 580.78125}</string>
+				<string>{436.45861883102481, 659.81250000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>55</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>56</integer>
+			</dict>
+			<key>ID</key>
+			<integer>58</integer>
+			<key>Points</key>
+			<array>
+				<string>{382.45861883102481, 580.78125}</string>
+				<string>{355.45861883102481, 659.81250000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>55</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{410.02111883102481, 633.93750000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>57</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{329.02111883102481, 633.93750000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>56</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{356.02111883102481, 554.90625}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>55</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>50</integer>
+			</dict>
+			<key>ID</key>
+			<integer>51</integer>
+			<key>Points</key>
+			<array>
+				<string>{193.45861883102469, 659.81250000000011}</string>
+				<string>{112.45861883102469, 659.81250000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<false/>
+					<key>Pattern</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>46</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{86.021118831024694, 633.93750000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>50</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 NS}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>47</integer>
+			</dict>
+			<key>ID</key>
+			<integer>49</integer>
+			<key>Points</key>
+			<array>
+				<string>{253.08361883102475, 580.78125}</string>
+				<string>{274.45861883102475, 659.81250000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>42</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>46</integer>
+			</dict>
+			<key>ID</key>
+			<integer>48</integer>
+			<key>Points</key>
+			<array>
+				<string>{253.08361883102475, 580.78125}</string>
+				<string>{193.45861883102469, 659.81250000000011}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>42</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{248.02111883102475, 633.93750000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>47</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{167.02111883102469, 633.93750000000011}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>46</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>42</integer>
+			</dict>
+			<key>ID</key>
+			<integer>44</integer>
+			<key>Points</key>
+			<array>
+				<string>{313.83361883102475, 501.75}</string>
+				<string>{253.08361883102475, 580.78125}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>40</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{226.64611883102475, 554.90625}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>42</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 N}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>40</integer>
+			</dict>
+			<key>ID</key>
+			<integer>41</integer>
+			<key>Points</key>
+			<array>
+				<string>{313.83361883102475, 420.75}</string>
+				<string>{313.83361883102475, 501.75}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>39</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{287.39611883102475, 475.875}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>40</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 R}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{287.39611883102475, 394.875}, {52.875, 51.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>39</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 S}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{64.125, 6.75}, {167, 82}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>36</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Align</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\deftab720
+\pard\pardeftab720
+
+\f0\fs32 \cf0 S : VNC Server\
+R : Root Node\
+N : Node\
+NS : Next VNC Server}</string>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{76.911926638264305, 618.81250000000011}, {151.875, 82}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>54</integer>
+			<key>Line</key>
+			<dict>
+				<key>ID</key>
+				<integer>51</integer>
+				<key>Position</key>
+				<real>0.50388240814208984</real>
+				<key>RotationType</key>
+				<integer>0</integer>
+			</dict>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{64.125, 230.68750000000011}, {151.875, 82}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>81</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>5</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>レイヤー 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoLineLength</key>
+		<real>0.20000000298023224</real>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2015-02-05 16:25:22 +0000</string>
+	<key>Modifier</key>
+	<string>YuSugimoto</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{594.99997329711914, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>キャンバス 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>BottomSlabHeight</key>
+		<real>434</real>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>Expanded_Canvases</key>
+		<array/>
+		<key>Frame</key>
+		<string>{{4, 0}, {1216, 778}}</string>
+		<key>ShowInfo</key>
+		<true/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>230</integer>
+		<key>VisibleRegion</key>
+		<string>{{0.83333330021964314, 0}, {557.49997784694119, 529.99997893969305}}</string>
+		<key>Zoom</key>
+		<real>1.2000000476837158</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>キャンバス 1</string>
+				<real>1.2000000476837158</real>
+				<real>1.2</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file paper/images/changeTreeVNC.pdf has changed
Binary file paper/images/compareTcpDelay.pdf has changed
Binary file paper/images/compare_100KB.pdf has changed
Binary file paper/images/compare_10B.pdf has changed
Binary file paper/images/comparenormalandtree.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/dsandcs.graffle	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,968 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>138.17.0.133677</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2011-08-11 17:46:55 +0900</string>
+	<key>Creator</key>
+	<string>Kazuki AKAMINE</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1.0000 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>6</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{287, 144}, {110, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>26</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 OutputDataSegment}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{35.5, 106}, {101, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>25</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 InputDataSegment}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>12</integer>
+			</dict>
+			<key>ID</key>
+			<integer>24</integer>
+			<key>Points</key>
+			<array>
+				<string>{256.233, 238.241}</string>
+				<string>{304.051, 251.2}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>10</integer>
+			</dict>
+			<key>ID</key>
+			<integer>23</integer>
+			<key>Points</key>
+			<array>
+				<string>{256.233, 215.759}</string>
+				<string>{304.051, 202.8}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+			</dict>
+			<key>ID</key>
+			<integer>22</integer>
+			<key>Points</key>
+			<array>
+				<string>{118.141, 279.191}</string>
+				<string>{173.31, 249.414}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>18</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+			</dict>
+			<key>ID</key>
+			<integer>21</integer>
+			<key>Points</key>
+			<array>
+				<string>{128.5, 227}</string>
+				<string>{173.25, 227}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>17</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+			</dict>
+			<key>ID</key>
+			<integer>20</integer>
+			<key>Points</key>
+			<array>
+				<string>{118.141, 174.808}</string>
+				<string>{173.31, 204.586}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>16</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{46, 271}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>18</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{46, 202}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>17</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{46, 133}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>16</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{173.75, 202}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>15</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Code\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{301, 236.5}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>12</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{301, 167.5}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>10</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{28, 100}, {119, 234}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>27</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{282.5, 139}, {119, 158}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>28</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>レイヤー 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2012-02-06 04:49:59 +0900</string>
+	<key>Modifier</key>
+	<string>Kazuki AKAMINE</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{595, 842}</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>QuickLookPreview</key>
+	<data>
+	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
+	ArEvBdIalWK1CeTN3wpSre8KZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjE2NzMKZW5k
+	b2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCA0IDAgUiAvUmVzb3VyY2Vz
+	IDcgMCBSIC9Db250ZW50cyA1IDAgUiAvTWVkaWFCb3ggWzAgMCA1NTkgNzgzXQo+Pgpl
+	bmRvYmoKNyAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgXSAvQ29sb3JTcGFj
+	ZSA8PCAvQ3MyIDkgMCBSIC9DczEgOCAwIFIgPj4gL0ZvbnQgPDwKL0YxLjAgMTAgMCBS
+	ID4+ID4+CmVuZG9iagoxMSAwIG9iago8PCAvTGVuZ3RoIDEyIDAgUiAvTiAxIC9BbHRl
+	cm5hdGUgL0RldmljZUdyYXkgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB
+	hVJPSBRRHP7NNhKEiEGFeIh3CgmVKaysoNp2dVmVbVuV0qIYZ9+6o7Mz05vZNcWTBF2i
+	PHUPomN07NChm5eiwKxL1yCpIAg8dej7zezqKIRveTvf+/39ft97RG2dpu87KUFUc0OV
+	K6Wnbk5Ni4MfKUUd1E5YphX46WJxjLHruZK/u9fWZ9LYst7HtXb79j21lWVgIeottrcQ
+	+iGRZgAfmZ8oZYCzwB2Wr9g+ATxYDqwa8COiAw+auTDT0Zx0pbItkVPmoigqr2I7Sa77
+	+bnGvou1iYP+XI9m1o69s+qq0UzUtPdEobwPrkQZz19U9mw1FKcN45xIQxop8q7V3ytM
+	xxGRKxBKBlI1ZLmfak6ddeB1GLtdupPj+PYQpT7JYKiJtemymR2FfQB2KsvsEPAF6PGy
+	Yg/ngXth/1tRw5PAJ2E/ZId51q0f9heuU+B7hD014M4UrsXx2oofXi0BQ/dUI2iMc03E
+	09c5c6SI7zHUGZj3RjmmCzF3lqoTN4A7YR9ZqmYKsV37ruol7nsCd9PjO9GbOQtcoBxJ
+	crEV2RTQPAlYFH2LsEkOPD7OHlXgd6iYwBy5idzNKPce1REbZ6NSgVZ6jVfGT+O58cX4
+	ZWwYz4B+rHbXe3z/6eMVdde2Pjz5jXrcOa69nRtVYVZxZQvd/8cyhI/ZJzmmwdOhWVhr
+	2HbkD5rMTLAMKMR/BT6X+pITVdzV7u24RRLMUD4sbCW6S1RuKdTqPYNKrBwr2AB2cJLE
+	LFocuFNrujl4d9giem35TVey64b++vZ6+9ryHm3KqCkoE82zRGaUsVuj5N142/1mkRGf
+	ODq+572KWsn+SUUQP4U5WiryFFX0VlDWxG9nDn4btn5cP6Xn9UH9PAk9rZ/Rr+ijEb4M
+	dEnPwnNRH6NJ8LBpIeISoIqDM9ROVGONA+Ip8fK0W2SR/Q9AGf1mCmVuZHN0cmVhbQpl
+	bmRvYmoKMTIgMCBvYmoKNzA0CmVuZG9iago5IDAgb2JqClsgL0lDQ0Jhc2VkIDExIDAg
+	UiBdCmVuZG9iagoxMyAwIG9iago8PCAvTGVuZ3RoIDE0IDAgUiAvTiAzIC9BbHRlcm5h
+	dGUgL0RldmljZVJHQiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGFVM9r
+	E0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0Sre
+	Re2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQN
+	x1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A
+	4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXT
+	QINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmt
+	P0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQ
+	OMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUE
+	YZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4q
+	r8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xX
+	lzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn
+	/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6
+	JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODI
+	mbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05
+	Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS
+	+fmsUtl+ThrWgZf6b8C8/UUKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago3MzcKZW5k
+	b2JqCjggMCBvYmoKWyAvSUNDQmFzZWQgMTMgMCBSIF0KZW5kb2JqCjQgMCBvYmoKPDwg
+	L1R5cGUgL1BhZ2VzIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdIC9Db3VudCAxIC9LaWRz
+	IFsgMyAwIFIgXSA+PgplbmRvYmoKMTUgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cgL091
+	dGxpbmVzIDIgMCBSIC9QYWdlcyA0IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvTGFz
+	dCAxNiAwIFIgL0ZpcnN0IDE3IDAgUiA+PgplbmRvYmoKMTcgMCBvYmoKPDwgL1BhcmVu
+	dCAxOCAwIFIgL0NvdW50IDAgL0Rlc3QgWyAzIDAgUiAvWFlaIDAgNzgzIDAgXSAvVGl0
+	bGUgKP7/MK0w4zDzMNAwuVwwMDAgXDAwMDEpCj4+CmVuZG9iagoxOCAwIG9iago8PCA+
+	PgplbmRvYmoKMTYgMCBvYmoKPDwgL1BhcmVudCAxOCAwIFIgL0NvdW50IDAgL0Rlc3Qg
+	WyAzIDAgUiAvWFlaIDAgNzgzIDAgXSAvVGl0bGUgKP7/MK0w4zDzMNAwuVwwMDAgXDAw
+	MDEpCj4+CmVuZG9iagoxOSAwIG9iago8PCAvTGVuZ3RoIDIwIDAgUiAvTGVuZ3RoMSA5
+	MzQwIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ab1aeXxTdbY/v7tnabYm
+	zd4kTZM03ZsutLTQUNLSsllaxBYptIVCQRgRaxVHmKqgUpAnIgXBUUFlFQmFkQDCMIgC
+	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
+	SGVpZ2h0IDczNyAvRGVzY2VudCAtMjMwIC9GbGFncyAzMgovRm9udEJCb3ggWy05NTEg
+	LTQ4MSAxNDQ1IDExMjJdIC9Gb250TmFtZSAvVFZQREdLK0hlbHZldGljYSAvSXRhbGlj
+	QW5nbGUgMAovU3RlbVYgMCAvTWF4V2lkdGggMTUwMCAvWEhlaWdodCA2MzcgL0ZvbnRG
+	aWxlMiAxOSAwIFIgPj4KZW5kb2JqCjIyIDAgb2JqClsgNzIyIDcyMiAwIDAgMCAwIDI3
+	OCAwIDAgMCAwIDAgNzc4IDAgMCAwIDY2NyAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
+	IDU1NgowIDAgNTU2IDU1NiAwIDU1NiAwIDAgMCAwIDAgODMzIDU1NiA1NTYgNTU2IDAg
+	MCAwIDI3OCA1NTYgXQplbmRvYmoKMTAgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5
+	cGUgL1RydWVUeXBlIC9CYXNlRm9udCAvVFZQREdLK0hlbHZldGljYSAvRm9udERlc2Ny
+	aXB0b3IKMjEgMCBSIC9XaWR0aHMgMjIgMCBSIC9GaXJzdENoYXIgNjcgL0xhc3RDaGFy
+	IDExNyAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjIzIDAgb2Jq
+	CihNYWMgT1MgWCAxMC42LjggUXVhcnR6IFBERkNvbnRleHQpCmVuZG9iagoyNCAwIG9i
+	agooRDoyMDEyMDIwNTE5NTAwNVowMCcwMCcpCmVuZG9iagoxIDAgb2JqCjw8IC9Qcm9k
+	dWNlciAyMyAwIFIgL0NyZWF0aW9uRGF0ZSAyNCAwIFIgL01vZERhdGUgMjQgMCBSID4+
+	CmVuZG9iagp4cmVmCjAgMjUKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDExMDAwIDAw
+	MDAwIG4gCjAwMDAwMDM5MTIgMDAwMDAgbiAKMDAwMDAwMTc4OSAwMDAwMCBuIAowMDAw
+	MDAzNzYzIDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwMTc2OSAwMDAw
+	MCBuIAowMDAwMDAxODkzIDAwMDAwIG4gCjAwMDAwMDM3MjcgMDAwMDAgbiAKMDAwMDAw
+	MjgzMSAwMDAwMCBuIAowMDAwMDEwNzMxIDAwMDAwIG4gCjAwMDAwMDIwMDMgMDAwMDAg
+	biAKMDAwMDAwMjgxMSAwMDAwMCBuIAowMDAwMDAyODY3IDAwMDAwIG4gCjAwMDAwMDM3
+	MDcgMDAwMDAgbiAKMDAwMDAwMzg0NiAwMDAwMCBuIAowMDAwMDA0MDg5IDAwMDAwIG4g
+	CjAwMDAwMDM5NjAgMDAwMDAgbiAKMDAwMDAwNDA2NyAwMDAwMCBuIAowMDAwMDA0MTk2
+	IDAwMDAwIG4gCjAwMDAwMTAzMzMgMDAwMDAgbiAKMDAwMDAxMDM1NCAwMDAwMCBuIAow
+	MDAwMDEwNTc5IDAwMDAwIG4gCjAwMDAwMTA5MDYgMDAwMDAgbiAKMDAwMDAxMDk1OCAw
+	MDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDI1IC9Sb290IDE1IDAgUiAvSW5mbyAxIDAg
+	UiAvSUQgWyA8N2YzOTBkNzJiMGQyMjhlNGM3ODU5ODBlYWNmNmRiNjI+Cjw3ZjM5MGQ3
+	MmIwZDIyOGU0Yzc4NTk4MGVhY2Y2ZGI2Mj4gXSA+PgpzdGFydHhyZWYKMTEwNzUKJSVF
+	T0YKMSAwIG9iago8PC9BdXRob3IgKEthenVraSBBS0FNSU5FKS9DcmVhdGlvbkRhdGUg
+	KEQ6MjAxMTA4MTEwODQ2MDBaKS9DcmVhdG9yIChPbW5pR3JhZmZsZSA1LjIuMykvTW9k
+	RGF0ZSAoRDoyMDEyMDIwNTE5NDkwMFopL1Byb2R1Y2VyIDIzIDAgUiAvVGl0bGUgKGRz
+	YW5kY3MuZ3JhZmZsZSk+PgplbmRvYmoKeHJlZgoxIDEKMDAwMDAxMTczMyAwMDAwMCBu
+	IAp0cmFpbGVyCjw8L0lEIFs8N2YzOTBkNzJiMGQyMjhlNGM3ODU5ODBlYWNmNmRiNjI+
+	IDw3ZjM5MGQ3MmIwZDIyOGU0Yzc4NTk4MGVhY2Y2ZGI2Mj5dIC9JbmZvIDEgMCBSIC9Q
+	cmV2IDExMDc1IC9Sb290IDE1IDAgUiAvU2l6ZSAyNT4+CnN0YXJ0eHJlZgoxMTkwNwol
+	JUVPRgo=
+	</data>
+	<key>QuickLookThumbnail</key>
+	<data>
+	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
+	3AAAwGw=
+	</data>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>キャンバス 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array/>
+		<key>Frame</key>
+		<string>{{653, 201}, {693, 937}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>キャンバス 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+	<key>saveQuickLookFiles</key>
+	<string>YES</string>
+</dict>
+</plist>
Binary file paper/images/dsandcs.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/dsandcs2.graffle	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,1082 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>138.17.0.133677</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2012-02-06 05:00:27 +0900</string>
+	<key>Creator</key>
+	<string>Kazuki AKAMINE</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1 0/72 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>6</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>33</integer>
+			</dict>
+			<key>ID</key>
+			<integer>36</integer>
+			<key>Points</key>
+			<array>
+				<string>{416.717, 273.074}</string>
+				<string>{445.506, 269.591}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>25</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>30</integer>
+			</dict>
+			<key>ID</key>
+			<integer>35</integer>
+			<key>Points</key>
+			<array>
+				<string>{410.427, 201.798}</string>
+				<string>{445.543, 187.311}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>24</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{446, 238}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>33</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Code\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{446, 144}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>30</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Code\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>24</integer>
+			</dict>
+			<key>ID</key>
+			<integer>28</integer>
+			<key>Points</key>
+			<array>
+				<string>{306.461, 186.375}</string>
+				<string>{342.116, 201.317}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>23</integer>
+			</dict>
+			<key>ID</key>
+			<integer>27</integer>
+			<key>Points</key>
+			<array>
+				<string>{306.495, 163.048}</string>
+				<string>{335.281, 158.919}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>25</integer>
+			</dict>
+			<key>ID</key>
+			<integer>26</integer>
+			<key>Points</key>
+			<array>
+				<string>{306.496, 268.286}</string>
+				<string>{335.667, 272.002}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>17</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{335, 253}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>25</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{335, 191}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>24</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{335, 129}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>23</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>17</integer>
+			</dict>
+			<key>ID</key>
+			<integer>22</integer>
+			<key>Points</key>
+			<array>
+				<string>{181.608, 272.746}</string>
+				<string>{223.503, 267.326}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>19</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>17</integer>
+			</dict>
+			<key>ID</key>
+			<integer>21</integer>
+			<key>Points</key>
+			<array>
+				<string>{176.479, 229.195}</string>
+				<string>{223.535, 246.696}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>18</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+			</dict>
+			<key>ID</key>
+			<integer>20</integer>
+			<key>Points</key>
+			<array>
+				<string>{181.823, 158.583}</string>
+				<string>{223.505, 163.261}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>16</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{100, 253}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>19</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{100, 191}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>18</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{224, 238}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>17</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Code\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{100, 129}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>16</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Data\
+Segment}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{224, 144}, {82, 50}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>15</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Code\
+Segment}</string>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>レイヤー 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2012-02-06 05:02:57 +0900</string>
+	<key>Modifier</key>
+	<string>Kazuki AKAMINE</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{595, 842}</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>QuickLookPreview</key>
+	<data>
+	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
+	4AwZ9KcH2/w5IvmpEU/x53A1xFRdI/5H2kJ18TBwRPxXdEJFD0StRvF9haBkGTJwVmtp
+	NWSH7AeDjUyY9xSLwTWhgUFvxsg7gU9g5SsaSJKanEo2LzXgfYPR2GsLGsexsT+LSZst
+	1bbYuj90QLTy2R/ijYuJmNVs/LE2ohU0znC9hkZChtK4G48Zrq2wonFEh2FrWuCBmrqG
+	RkDuJO8VusklWHSCQMO36JAv1SBxWhuE5gRq6JLou1JsR6NrN2nXvkz8PWs4g1a/OHqx
+	EH+2OjQarQ1if4q+w+Z1NA60VzSY+INUy4MSPQiNB6XPOODUCc/vR4FeR47ej45uUVT+
+	/n6kvun9aCV559+Put1ORZ8rLP8vZcT6ZaS+wrU/XhQWwfTikTotB6Pvy4OXMVLf0YPL
+	MA27Z2DaWbvMrPWZkfohBGh8A2oXumLUtIqyAlhwstHIYvKCvPWVjxS/0sngJWBkjH4W
+	TTOobE2BxhIBZyy2+gsZuBlVp+DDUmIEfDi3+IzGDx8A/k4bnqXiHNZf0SDCaDyGLJM/
+	kgVU/9kf1QQfY2n190hbKs6Z+htwiWSL7pzadJODayvEYc4oY3QLACE6wWSH7GMCRTeP
+	Rz1ErV2jy0Cn3UYGRbhFh6lFKUVFQ+NYP9DYawsah/VX/NHIA4WLxl6EfvNHt1Gl+Reh
+	v/pDvDT0TOvt90Qb0dIq3v4LozlGDgplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKMjE4
+	OAplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDQgMCBSIC9SZXNv
+	dXJjZXMgNyAwIFIgL0NvbnRlbnRzIDUgMCBSIC9NZWRpYUJveCBbMCAwIDU1OSA3ODNd
+	Cj4+CmVuZG9iago3IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIC9Db2xv
+	clNwYWNlIDw8IC9DczEgOCAwIFIgL0NzMiA5IDAgUiA+PiAvRm9udCA8PAovRjEuMCAx
+	MCAwIFIgPj4gPj4KZW5kb2JqCjExIDAgb2JqCjw8IC9MZW5ndGggMTIgMCBSIC9OIDMg
+	L0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh
+	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
+	L0tpZHMgWyAzIDAgUiBdID4+CmVuZG9iagoxNSAwIG9iago8PCAvVHlwZSAvQ2F0YWxv
+	ZyAvT3V0bGluZXMgMiAwIFIgL1BhZ2VzIDQgMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8
+	IC9MYXN0IDE2IDAgUiAvRmlyc3QgMTcgMCBSID4+CmVuZG9iagoxNyAwIG9iago8PCAv
+	UGFyZW50IDE4IDAgUiAvQ291bnQgMCAvRGVzdCBbIDMgMCBSIC9YWVogMCA3ODMgMCBd
+	IC9UaXRsZSAo/v8wrTDjMPMw0DC5XDAwMCBcMDAwMSkKPj4KZW5kb2JqCjE4IDAgb2Jq
+	Cjw8ID4+CmVuZG9iagoxNiAwIG9iago8PCAvUGFyZW50IDE4IDAgUiAvQ291bnQgMCAv
+	RGVzdCBbIDMgMCBSIC9YWVogMCA3ODMgMCBdIC9UaXRsZSAo/v8wrTDjMPMw0DC5XDAw
+	MCBcMDAwMSkKPj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9MZW5ndGggMjAgMCBSIC9MZW5n
+	dGgxIDg1MTYgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvVp7eFTVtV/7
+	vOeRycxkJvPOzORkZjKZvENCQgIZwiSEpyFBzCCBJBAIEUrEmAoVGhVUAnJFJCC0Kj54
+	igyBygDFUoqit61gW1G59ra2ULleU9pesK2SmbvOmRCBz/rxh1/nZO291l777L32b6+9
+	9j7npGvp/W2QBD1AQ93Mls75IP9cdZhdmbu4pTMh6y9g/uDc7i5XQmYzAehF8zsXLE7I
+	wtMASseCRcuG7k95EEDd1d7WMi+hh2uYl7RjQUImIzDPaF/c9UBC1h/CPH/RkrlD+pRm
+	lK2LWx4Y6h8+Qtn1nZbFbZhLbDYmGZ1L7uuSRXD+BfOKzqVtQ/VJI9p3BgiWqmEJKOAe
+	4IECLV5NAPwlpQMY1Ep6/M3LVm2ck1xxFXSCLM+Z8h9y/qb7x+f+0XbNp9og/BMLFNfr
+	Sznnj/mxcYL6AdWGYY18HybqKDQEojABqRKpGCkQGGuGHrIDnkR6HomGhWQtLENag/QM
+	EjPM7UbpCFnbzwjBo2QZWMnEoIpxTjdYnGalyvmrKOEOPev80PzHY8SCs/cxsfQngWKs
+	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
+	pgygz5rKpIApuS40pRQZMcpJoc10PcKJOinmcUYdMokdRyeu6g+OCN/bMzU7o+KFtg+m
+	Zh27Z0rHM4et/s75Ow8xeVvuyBhdmVEzo+EH09cPjqQu3VO3fsfgBurY4sJJz54ZfEuK
+	WThuegD9yAJWmB0sOMyd5iiGM3A+QzfXxbMGNWUwax0sDtOsUlp5qxXUfoXVTnLNfgtY
+	bLh9cDeNTF6aCW/BcQ3g1k0SAyLSkG4YijQCXCsaguMhq/ZO3tN+oS77sCN/ZdA/sTTH
+	dojsRPtn1z931wuD06gXWyvmJaVWFd+7cPAMGov+Xx7/kHEzU/HsbUbbnwwWbRH6tM+k
+	vszsEnZod6dGhbeE95mLmv8xqEcJnMPMqx16lYW3WIyUL9lqU/iMFqstShQH3UuHokri
+	0DHs53L4yAYT41WlKDAC6Cgv4U3IsUnIKQ1qLxAtJkIq5yW0BhNpw5KTAJ4VMvTSKUE+
+	FaQW6fGISeE+V4wezVO/X50/+ejLfX0v4oeaa7G//zZ2jeg/4bpI8o6+2U9f6997gT4f
+	+yx2JTYYe5UEruGmF2TRP03xy5SCnYmjrf9RUq7yhIZESWXQw6SWmWhOo9RZ0f3w64Mf
+	jBpjMu2kKfpaKp4sr7kXrBiKmk1lp/Kk4JhwuzzJ6QYrBrSDFwryU4p0RUZRhweY4T3U
+	W4z7RtGu1/bu9RoLktIMznG+lTM3bGBnxt7bOFhdmqIi1HqF8NAC6o2N8jlRikoQb8Nv
+	K1/3U2OhF3xQAiH5O81E+StRPdwlVyb45SjxJMXht3Soqm4YN7khUNu2qLuta+HcFqyT
+	0EqVS5FCSNOR5iFJ3+rRh+FppJeQ8LMpfgUB+A3ShfjQD3kY5gk+p90sh26RG26RJQtu
+	vH/eLbI85hvaX3CLXv5/hhv00rPije0tuUWWxgT/D1ajv0wKZW5kc3RyZWFtCmVuZG9i
+	agoyMCAwIG9iago1NDUyCmVuZG9iagoyMSAwIG9iago8PCAvVHlwZSAvRm9udERlc2Ny
+	aXB0b3IgL0FzY2VudCA3NzAgL0NhcEhlaWdodCA3MTcgL0Rlc2NlbnQgLTIzMCAvRmxh
+	Z3MgMzIKL0ZvbnRCQm94IFstOTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9udE5hbWUgL0JF
+	U0NMUytIZWx2ZXRpY2EgL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01heFdpZHRoIDE1
+	MDAgL1hIZWlnaHQgNjM3IC9Gb250RmlsZTIgMTkgMCBSID4+CmVuZG9iagoyMiAwIG9i
+	agpbIDcyMiA3MjIgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDY2NyAwIDAgMCAw
+	IDAgMCAwIDAgMCAwIDAgMCAwIDU1NiAwCjAgNTU2IDU1NiAwIDU1NiAwIDAgMCAwIDAg
+	ODMzIDU1NiA1NTYgMCAwIDAgMCAyNzggXQplbmRvYmoKMTAgMCBvYmoKPDwgL1R5cGUg
+	L0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNlRm9udCAvQkVTQ0xTK0hlbHZldGlj
+	YSAvRm9udERlc2NyaXB0b3IKMjEgMCBSIC9XaWR0aHMgMjIgMCBSIC9GaXJzdENoYXIg
+	NjcgL0xhc3RDaGFyIDExNiAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5k
+	b2JqCjIzIDAgb2JqCihNYWMgT1MgWCAxMC42LjggUXVhcnR6IFBERkNvbnRleHQpCmVu
+	ZG9iagoyNCAwIG9iagooRDoyMDEyMDIwNTIwMDMyN1owMCcwMCcpCmVuZG9iagoxIDAg
+	b2JqCjw8IC9Qcm9kdWNlciAyMyAwIFIgL0NyZWF0aW9uRGF0ZSAyNCAwIFIgL01vZERh
+	dGUgMjQgMCBSID4+CmVuZG9iagp4cmVmCjAgMjUKMDAwMDAwMDAwMCA2NTUzNSBmIAow
+	MDAwMDEwOTEwIDAwMDAwIG4gCjAwMDAwMDQ0MjcgMDAwMDAgbiAKMDAwMDAwMjMwNCAw
+	MDAwMCBuIAowMDAwMDA0Mjc4IDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAw
+	MDAwMjI4NCAwMDAwMCBuIAowMDAwMDAyNDA4IDAwMDAwIG4gCjAwMDAwMDMzNzggMDAw
+	MDAgbiAKMDAwMDAwNDI0MiAwMDAwMCBuIAowMDAwMDEwNjQxIDAwMDAwIG4gCjAwMDAw
+	MDI1MTggMDAwMDAgbiAKMDAwMDAwMzM1OCAwMDAwMCBuIAowMDAwMDAzNDE0IDAwMDAw
+	IG4gCjAwMDAwMDQyMjIgMDAwMDAgbiAKMDAwMDAwNDM2MSAwMDAwMCBuIAowMDAwMDA0
+	NjA0IDAwMDAwIG4gCjAwMDAwMDQ0NzUgMDAwMDAgbiAKMDAwMDAwNDU4MiAwMDAwMCBu
+	IAowMDAwMDA0NzExIDAwMDAwIG4gCjAwMDAwMTAyNTMgMDAwMDAgbiAKMDAwMDAxMDI3
+	NCAwMDAwMCBuIAowMDAwMDEwNDk5IDAwMDAwIG4gCjAwMDAwMTA4MTYgMDAwMDAgbiAK
+	MDAwMDAxMDg2OCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDI1IC9Sb290IDE1IDAg
+	UiAvSW5mbyAxIDAgUiAvSUQgWyA8YTY2NjdjMTkwZDIxZmU5M2IwMjYxMTQzZDkyMWQx
+	NTA+CjxhNjY2N2MxOTBkMjFmZTkzYjAyNjExNDNkOTIxZDE1MD4gXSA+PgpzdGFydHhy
+	ZWYKMTA5ODUKJSVFT0YKMSAwIG9iago8PC9BdXRob3IgKEthenVraSBBS0FNSU5FKS9D
+	cmVhdGlvbkRhdGUgKEQ6MjAxMjAyMDUyMDAwMDBaKS9DcmVhdG9yIChPbW5pR3JhZmZs
+	ZSA1LjIuMykvTW9kRGF0ZSAoRDoyMDEyMDIwNTIwMDIwMFopL1Byb2R1Y2VyIDIzIDAg
+	UiA+PgplbmRvYmoKeHJlZgoxIDEKMDAwMDAxMTY0MyAwMDAwMCBuIAp0cmFpbGVyCjw8
+	L0lEIFs8YTY2NjdjMTkwZDIxZmU5M2IwMjYxMTQzZDkyMWQxNTA+IDxhNjY2N2MxOTBk
+	MjFmZTkzYjAyNjExNDNkOTIxZDE1MD5dIC9JbmZvIDEgMCBSIC9QcmV2IDEwOTg1IC9S
+	b290IDE1IDAgUiAvU2l6ZSAyNT4+CnN0YXJ0eHJlZgoxMTc5MwolJUVPRgo=
+	</data>
+	<key>QuickLookThumbnail</key>
+	<data>
+	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
+	3AAAwGw=
+	</data>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>キャンバス 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array/>
+		<key>Frame</key>
+		<string>{{110, 115}, {693, 937}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>キャンバス 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+	<key>saveQuickLookFiles</key>
+	<string>YES</string>
+</dict>
+</plist>
Binary file paper/images/dsandcs2.pdf has changed
Binary file paper/images/emblem-bitmap.pdf has changed
Binary file paper/images/keepAlive.pdf has changed
Binary file paper/images/multicast.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/remote_datasegment.graffle	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,1818 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle6</string>
+		<string>156.11.0.206384</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {558.99997329711914, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2012-02-07 15:00:26 +0000</string>
+	<key>Creator</key>
+	<string>Kazuki AKAMINE</string>
+	<key>DisplayScale</key>
+	<string>1 in = 1 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>11</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>41</integer>
+			</dict>
+			<key>ID</key>
+			<integer>49</integer>
+			<key>Points</key>
+			<array>
+				<string>{326.60940175781235, 547.9375}</string>
+				<string>{433.96875, 668.15625}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>34</integer>
+				<key>Info</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>37</integer>
+			</dict>
+			<key>ID</key>
+			<integer>48</integer>
+			<key>Points</key>
+			<array>
+				<string>{219.57809824218762, 547.9375}</string>
+				<string>{99.84375, 668.15625}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>34</integer>
+				<key>Info</key>
+				<integer>4</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{408.96875, 733.125}, {50, 19}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>47</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs32 \cf0 NodeD}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{248.109375, 737.0625}, {50, 19}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>46</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs32 \cf0 NodeC}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{75.34375, 733.125}, {49, 19}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>45</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs32 \cf0 NodeB}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>39</integer>
+				<key>Info</key>
+				<integer>2</integer>
+			</dict>
+			<key>ID</key>
+			<integer>43</integer>
+			<key>Points</key>
+			<array>
+				<string>{273.09375, 573.25001265624996}</string>
+				<string>{273.109375, 672.09375}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>34</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{396.5625, 668.15625}, {74.8125, 41.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>41</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Local\
+DSM}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{364.5, 644.8125}, {138.9375, 88.3125}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>40</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{235.703125, 672.09375}, {74.8125, 41.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>39</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Local\
+DSM}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{203.640625, 648.75}, {138.9375, 88.3125}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>38</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{62.4375, 668.15625}, {74.8125, 41.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>37</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Local\
+DSM}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{30.375, 644.8125}, {138.9375, 88.3125}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>36</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{219.578125, 522.625}, {107.03125, 50.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>34</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Multicast\
+DSM\
+\'93multicast\'94}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{248.59375, 438.75}, {49, 19}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>33</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs32 \cf0 NodeA}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{235.6875, 473.8125}, {74.8125, 41.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>31</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Local\
+DSM}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{170.71875, 462.5625}, {204.75, 117.6796875}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>30</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{421.34375, 369.5625}, {50, 19}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>29</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs32 \cf0 NodeD}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{248.09375, 369.5625}, {50, 19}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>28</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs32 \cf0 NodeC}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{75.34375, 369.5625}, {49, 19}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>27</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs32 \cf0 NodeB}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>23</integer>
+			</dict>
+			<key>ID</key>
+			<integer>26</integer>
+			<key>Points</key>
+			<array>
+				<string>{365.09375, 153.00001265624994}</string>
+				<string>{446.34375, 304.59375}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>16</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>21</integer>
+				<key>Info</key>
+				<integer>2</integer>
+			</dict>
+			<key>ID</key>
+			<integer>25</integer>
+			<key>Points</key>
+			<array>
+				<string>{273.09375, 183.00001265624994}</string>
+				<string>{273.09375, 304.59375}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>15</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>19</integer>
+			</dict>
+			<key>ID</key>
+			<integer>24</integer>
+			<key>Points</key>
+			<array>
+				<string>{181.09375, 153.00001265624994}</string>
+				<string>{99.84375, 304.59375}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<false/>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>4</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{408.9375, 304.59375}, {74.8125, 41.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>23</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Local\
+DSM}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{376.875, 281.25}, {138.9375, 88.3125}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>22</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{235.6875, 304.59375}, {74.8125, 41.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>21</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Local\
+DSM}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{203.625, 281.25}, {138.9375, 88.3125}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>20</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{62.4375, 304.59375}, {74.8125, 41.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>19</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Local\
+DSM}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{30.375, 281.25}, {138.9375, 88.3125}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>17</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{319.09375, 102.375}, {92, 50.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>16</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Remote\
+DSM\
+\'93nodeD\'94}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{227.09375, 132.375}, {92, 50.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>15</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Remote\
+DSM\
+\'93nodeC\'94}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{248.59375, 16.875}, {49, 19}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>16</real>
+			</dict>
+			<key>ID</key>
+			<integer>7</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs32 \cf0 NodeA}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{135.09375, 102.375}, {92, 50.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Remote\
+DSM\
+\'93nodeB\'94}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{235.6875, 57.5}, {74.8125, 41.625}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>3</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Local\
+DSM}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{118.96875, 42.375}, {308.25, 150.75}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>6</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>レイヤー 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoLineLength</key>
+		<real>0.20000000298023224</real>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2015-02-04 08:08:02 +0000</string>
+	<key>Modifier</key>
+	<string>YuSugimoto</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{594.99997329711914, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>キャンバス 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>BottomSlabHeight</key>
+		<real>623</real>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>Expanded_Canvases</key>
+		<array/>
+		<key>Frame</key>
+		<string>{{128, 91}, {1594, 967}}</string>
+		<key>ShowInfo</key>
+		<true/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>230</integer>
+		<key>VisibleRegion</key>
+		<string>{{-244, -21}, {1047, 825}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>キャンバス 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file paper/images/remote_datasegment.pdf has changed
Binary file paper/images/sortflow.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/topologymanager.graffle	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,1226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>138.17.0.133677</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2012-02-09 05:15:07 +0900</string>
+	<key>Creator</key>
+	<string>Kazuki AKAMINE</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1 0/72 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>6</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>48</integer>
+			</dict>
+			<key>ID</key>
+			<integer>55</integer>
+			<key>Points</key>
+			<array>
+				<string>{169, 157}</string>
+				<string>{141, 261}</string>
+				<string>{208.193, 337.624}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>50</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>Pattern</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>49</integer>
+			</dict>
+			<key>ID</key>
+			<integer>54</integer>
+			<key>Points</key>
+			<array>
+				<string>{169, 157}</string>
+				<string>{243, 199}</string>
+				<string>{299.901, 260.633}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>50</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>Pattern</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+			</dict>
+			<key>ID</key>
+			<integer>53</integer>
+			<key>Points</key>
+			<array>
+				<string>{169, 157}</string>
+				<string>{187.389, 204.534}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>Pattern</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>49</integer>
+			</dict>
+			<key>ID</key>
+			<integer>52</integer>
+			<key>Points</key>
+			<array>
+				<string>{251.677, 337.681}</string>
+				<string>{294.439, 302.322}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+					<key>TailScale</key>
+					<real>1.4299999475479126</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>48</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>49</integer>
+			</dict>
+			<key>ID</key>
+			<integer>51</integer>
+			<key>Points</key>
+			<array>
+				<string>{227.455, 239.995}</string>
+				<string>{287.211, 267.099}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+					<key>TailScale</key>
+					<real>1.4299999475479126</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>48</integer>
+			</dict>
+			<key>ID</key>
+			<integer>50</integer>
+			<key>Points</key>
+			<array>
+				<string>{200.391, 246.487}</string>
+				<string>{221.605, 337.513}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+					<key>TailScale</key>
+					<real>1.4299999475479126</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{287.667, 261}, {63, 41}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>49</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Topology\
+Node}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{195, 338}, {63, 41}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>48</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Topology\
+Node}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{164, 205}, {63, 41}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>1</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Topology\
+Node}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{257.5, 116}, {25, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>44</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 read}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+			</dict>
+			<key>ID</key>
+			<integer>43</integer>
+			<key>Points</key>
+			<array>
+				<string>{296, 129.5}</string>
+				<string>{209, 136.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HeadScale</key>
+					<real>1.4285709857940674</real>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>TailScale</key>
+					<real>0.5</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>29</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>38</integer>
+			</dict>
+			<key>ID</key>
+			<integer>41</integer>
+			<key>Points</key>
+			<array>
+				<string>{324.839, 150.464}</string>
+				<string>{342.577, 135.536}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+					<key>TailScale</key>
+					<real>1.0000001192092896</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>37</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>37</integer>
+			</dict>
+			<key>ID</key>
+			<integer>40</integer>
+			<key>Points</key>
+			<array>
+				<string>{312.555, 108.983}</string>
+				<string>{316.862, 149.017}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+					<key>TailScale</key>
+					<real>1.0000001192092896</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>28</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>AllowLabelDrop</key>
+			<false/>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>28</integer>
+			</dict>
+			<key>ID</key>
+			<integer>39</integer>
+			<key>Points</key>
+			<array>
+				<string>{341.959, 123.76}</string>
+				<string>{319.541, 107.24}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+					<key>TailScale</key>
+					<real>1.0000001192092896</real>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>38</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{338, 122.5}, {23.5, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>38</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{305.917, 149.5}, {23.5, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>37</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{300, 94.5}, {23.5, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>28</integer>
+			<key>Shape</key>
+			<string>Circle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{309.667, 170.5}, {41, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>30</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 ring.dot}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{296, 88.5}, {68.3333, 82}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>HiraKakuProN-W3</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>29</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0.112222, 0.508333}</string>
+				<string>{0.116428, -0.5}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>NoteShape</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Align</key>
+				<integer>0</integer>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{129, 116}, {80, 41}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>12</real>
+			</dict>
+			<key>ID</key>
+			<integer>3</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf360
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Topology\
+Manager}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>レイヤー 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2012-02-09 05:24:04 +0900</string>
+	<key>Modifier</key>
+	<string>Kazuki AKAMINE</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{595, 842}</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>QuickLookPreview</key>
+	<data>
+	JVBERi0xLjMKJcTl8uXrp/Og0MTGCjUgMCBvYmoKPDwgL0xlbmd0aCA2IDAgUiAvRmls
+	dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGtmUtvHLkRx+/9KXiUD+5l8c1rjORg
+	IAEWFpCDkUMgr3djWOvYziXfPr9ik+yenpFkLLKGsKMS68F/PVnz1fxsvhrLvxirycWb
+	b7+Yv5vfzU9vvot5+G6k/fv+YF7bNRr9ORz8aMRVk1wyxZogC7yQzFt+Pm0S3rxrwq15
+	9wY90n55rf9TVQ+PjV+k86vudxiEbreg2xr0HrgkoSwkbIDzT/cwd3nOvHZhtZJjMa+9
+	uX80P/1FVou++4/m7v7Vcv/J/Pm+XXWacBZmV2utM/cPF2KlXItdNrFf/v3l85df//vK
+	/IDwC0v9mopNyYgsl5a+N3d//ecrRdqZu9/Hh0n5dVB+GR++vTL/MPdvudvSULv0mE9h
+	9fxnUkaiT848mgONm9kAwa8hxcihstYUZfExr+I4nUpaU8S5D0ZpNtaNlr0T8xma5SIJ
+	zhpwSfvVgWD/NeCQsmy/IMDH1WccvRFcvf70YBpVHMKQPo3fCMtOGLf5bH47HBvUR0Lw
+	EDMz0ia/IDAnX5YDGmLDWrFpoqEE60NtN29o1LT6kAMQ72hAc+BWlgMapRzB2H5rWJj2
+	+QBF+13vfPFh2XAQ7nOBwzWh3wOwDjjo7bhFOvh62W8XsDcFMwnqQvXZIOjdTqR+NT2l
+	dhYLcvNQs9xzvVCIpfbbw0xhLR/nFPberpJSNslG7vfwuJzzmDwUl004ZTG58e1fI+5n
+	bsyUWF9Rm9xy92Ec+TI+/GfmyFZZTjni0BcLQUywh1CL4kYtSSG7JRW/ErMyKSRJXV3x
+	hMXky9SjCDhAJ5FUQkTKfi3c0nhLknmLpJ1CugXRdJt8rpa1RKd8XfpOmRbYjQ+bup3o
+	69Kxva5SPMk8LZiUaefOd50fC/V03oig1gv5AxKmboahoWNDxExsOoJiN8sI4GmH2GHZ
+	sPVA6UgMPhCc9x7Sl0nZLehImGnnAYnagKeTTQsGZbm+3xap3sW15kjd8qIRkPXeRGmk
+	RNDaSo+AnUIOEQHIG3xOFDDaGejI6ltJpG9sESB+rSEhaVKAxMeCvs6neFFtcqpEBfBu
+	8bVThgWTb9ipOA/pPrQIwKphQadg07Bz57uOAO2o86TE7UZaIce9JQ7LdsqwbGggVTYE
+	D0gIdVxjc5m2Dgq37kgc+ca9JQ7pO2UgP/m6nS33OhISBvIDiQOlIzHv1yMAVVsN4MOo
+	Acm1GmBojT0Cdop0H00+dGoEqCejtlOtASH2CGBg0RpwpChMWgM6n9rvU68B3GmLr50y
+	LAiDb9gJ35QO9lsNmBZ0CtX6fL+Hp3rkOCnEYatqRMC4N1W5WzYpRNRWHycfUddy6ICE
+	eOaJVp2GrYOy+HEjOfCNe8uUPindAm7dkRh2KvJTOo7fcm8gITulIzH4QF4HzvO80Oqh
+	J6JK9YxpeS2F0VMzJK9RbIbmV34cvVf5dX5unU7Tz2Z1dqaHUCw1hUiP7EUMbW8NWbJO
+	N46CWqkZKdOubZunaOJnblR+RPBbfj4tZyO3lO36hPrq6SnNyK5P6Aa0FX/UJ0J7r7ky
+	sRz0Hbj1Oj7YNVB5sdiq1NhKIlJ1/uYSQ6h3q7OVIU8DAqHbJHKD+Yl6M06Kgx+YzOOi
+	c6KqUdsHVl0NcznWTKyumZsrxuvjK1O6OuX42NASlITuLVqMHY0d76CoWJov9FUyf9xc
+	6kWHXx0MsKgwDOhRSlKJTK4MPBKaH5m2tJQHv0ZLD2monjiPTrwdaYMBmUzebQQZqsTr
+	bNBcuKlSM0MN5VJV58TI5j+dDFuLIboQuN0Tx29RSI/sEun0lTGFkfAoc2NmZpnMT/hv
+	qNGgAqKGZtciApodok3LoqAfQOom7rxq+fTejaeiJw5C814bp6tv7SnyimFcFCpC1czs
+	3uNXcZ4xk6rggt0i2JObpCHO8iUkjmrVrYyvC71+zbU5n7S4wTzT8MqDLQ0HhyAwxxqb
+	aZs6dViiex7UYS2tzBJ/LV7OzODYvOgwnVsmChEyW2pTJn3QCETPFEqyFsa1hJxd6MbM
+	wcn88YkK0rRgEhUpMMQT50OLAN5EqmtRoBWpXkCumF/yor53WBow+z8aR947EmoRcix4
+	hUPZnYaTOkOdxwNUJ1E9mkCjec9V3PgZGj4Pwjl6ZgmWnFh+u8n9vPemPvUebzydAIc+
+	TKsrBV3LwtSnnUn0Nazuu8Wtt9Alxq0XkMtW66q2mNPTh3SytlBGb7195pt/rgN46jzz
+	+GfKMlETwLOY0cXKvpi51Uj0uCNN2nHd4zx3Ban6dovsBF7exCyXm5iby5IrcS/uYk6L
+	k7tndzE/Kl5zy9PsrvYyd3/78gH8x57najUGHkZT54D1GWN1tx7z+qgYLnkOY0cCI1Xn
+	MK0wp1CBPLZdZyjud0MPRlyL+79i/MPi/zDGruQ16eIg0M4mgteNSYGeZ7XFz7PPoe21
+	Xan0aHn6bIAvF0u7HfDTYoL14oyMA+CXEnu2v4j5WfZ1XO9jzaWGHiRPaNhhP2hYdDl6
+	GdqHC8zFmdMHt5RiXGT0YNul5VF7eeatrPuA6J2nHXR8235lDsRaM5mqkgnMNt7nUctz
+	VJoK1MShtgojCI8waAzJNWz95Rb3C7V86NNBkrmUWr5oLW/6sJNXDQ3ooE+nc6aSrRVP
+	fTv31pEsHclxy0hrRKr2YtGNhDadiPgYqBtItZTEyvgagUVvsXWIzk09nty3m7EbJx0v
+	Q9DSbjz1OIbxEJmSD3ocDy+1vnXjW9zqlOeGKqfTCR5wPFcRpGhlRqrMFUkeLrN35UKP
+	LhyJOq4WhcCxwyo8FLgu211bW5Nk08WQ7jgGFrYPCnT5M/MLfhwM7CtXLwrE0LY4QiRV
+	20aAoc0lFNQ+UU1tO7Pi4Bg7pESSPDB3MCoxpTEjroVMwjfERqG2gC4jjs/IinwIlj+2
+	Pn/mxqQnys84SXisOddm/NDjmLMC0/FRjyqMtelmnujcy4H7RS/iqko+tnelqJO4WeGR
+	oi9Cr+OUMGX16aq6bd8V2DYGhvx2lot6XgKEMX6CBgosDEstFNzEE4QH9YZC514O3C94
+	cujz1BFKRSsfpevzmjC8ULBt6sPbvK2LVgXQuMHdfMnbnlGUDsmMGN2GMc+YVCUtgR12
+	FL74QColxoFvqyviGJ2b1Bvc176kpBJrXY8+FUK2Ley7Hpo5L5JC1zjo0XpScujWn7n7
+	A21k5HtGvcAUZ82Hm+8K/Y5KCFiqQKHIZDJMAESYR7s3BS9lvqgwLOb5jofHvp4FEqZY
+	JlTKK3/7bIQvd3gQEuYshtneb8/HwbwcmHdnvn/GrqGVbwV4rrPSmFoXqYAfiaWDVmEL
+	m0IfmIdWquVkPgb4BGV5CRS+08K5NHgdSCXyJRaO0JwjLqRmBUYgsFuleC9aHiubVihF
+	F1k68PInR4/QzTNJEsHXETusd1VUizN284ltESWOh1SCiczi+y4G9UI3oFQmkNboRR07
+	HkJxJWY09DR4r5lfxLcNMIOxha8m5q4V8zP34FW0a9UozeTypdbB/MeDTjVpJDkuShw6
+	gk54PScu6nhztWWMrh5YZXOIOhEjf9LVLevPCCj6CtevRrSJ0d4pRmzQ0h6+FGGecDzb
+	NY35CqnBS1jQuHUUwE+OgoFWlv3sEBmco+YB/aDh27mXA/eL+OqgNNVqVhM8Dd+ulhU6
+	UZFbDZxqdQ0eqFAXatv6oHNrrPz8Pz7zVrQKZW5kc3RyZWFtCmVuZG9iago2IDAgb2Jq
+	CjI3NTMKZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCA0IDAgUiAv
+	UmVzb3VyY2VzIDcgMCBSIC9Db250ZW50cyA1IDAgUiAvTWVkaWFCb3ggWzAgMCA1NTkg
+	NzgzXQo+PgplbmRvYmoKNyAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgXSAv
+	Q29sb3JTcGFjZSA8PCAvQ3MxIDggMCBSIC9DczIgOSAwIFIgPj4gL0ZvbnQgPDwKL0Yx
+	LjAgMTAgMCBSID4+ID4+CmVuZG9iagoxMSAwIG9iago8PCAvTGVuZ3RoIDEyIDAgUiAv
+	TiAzIC9BbHRlcm5hdGUgL0RldmljZVJHQiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+Pgpz
+	dHJlYW0KeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZu
+	NuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731v
+	dt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7
+	d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFki
+	fEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d
+	9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZ
+	Lg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8w
+	Dh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+
+	KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNX
+	R5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7P
+	LrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwvi
+	YG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8
+	F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEc
+	dod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfE
+	p0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UUKZW5kc3RyZWFtCmVuZG9iagoxMiAw
+	IG9iago3MzcKZW5kb2JqCjggMCBvYmoKWyAvSUNDQmFzZWQgMTEgMCBSIF0KZW5kb2Jq
+	CjEzIDAgb2JqCjw8IC9MZW5ndGggMTQgMCBSIC9OIDEgL0FsdGVybmF0ZSAvRGV2aWNl
+	R3JheSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGFUk9IFFEc/s02EoSI
+	QYV4iHcKCZUprKyg2nZ1WZVtW5XSohhn37qjszPTm9k1xZMEXaI8dQ+iY3Ts0KGbl6LA
+	rEvXIKkgCDx16PvN7OoohG95O9/7/f1+33tEbZ2m7zspQVRzQ5UrpaduTk2Lgx8pRR3U
+	TlimFfjpYnGMseu5kr+719Zn0tiy3se1dvv2PbWVZWAh6i22txD6IZFmAB+ZnyhlgLPA
+	HZav2D4BPFgOrBrwI6IDD5q5MNPRnHSlsi2RU+aiKCqvYjtJrvv5uca+i7WJg/5cj2bW
+	jr2z6qrRTNS090ShvA+uRBnPX1T2bDUUpw3jnEhDGinyrtXfK0zHEZErEEoGUjVkuZ9q
+	Tp114HUYu126k+P49hClPslgqIm16bKZHYV9AHYqy+wQ8AXo8bJiD+eBe2H/W1HDk8An
+	YT9kh3nWrR/2F65T4HuEPTXgzhSuxfHaih9eLQFD91QjaIxzTcTT1zlzpIjvMdQZmPdG
+	OaYLMXeWqhM3gDthH1mqZgqxXfuu6iXuewJ30+M70Zs5C1ygHElysRXZFNA8CVgUfYuw
+	SQ48Ps4eVeB3qJjAHLmJ3M0o9x7VERtno1KBVnqNV8ZP47nxxfhlbBjPgH6sdtd7fP/p
+	4xV117Y+PPmNetw5rr2dG1VhVnFlC93/xzKEj9knOabB06FZWGvYduQPmsxMsAwoxH8F
+	Ppf6khNV3NXu7bhFEsxQPixsJbpLVG4p1Oo9g0qsHCvYAHZwksQsWhy4U2u6OXh32CJ6
+	bflNV7Lrhv769nr72vIebcqoKSgTzbNEZpSxW6Pk3Xjb/WaREZ84Or7nvYpayf5JRRA/
+	hTlaKvIUVfRWUNbEb2cOfhu2flw/pef1Qf08CT2tn9Gv6KMRvgx0Sc/Cc1Efo0nwsGkh
+	4hKgioMz1E5UY40D4inx8rRbZJH9D0AZ/WYKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9i
+	ago3MDQKZW5kb2JqCjkgMCBvYmoKWyAvSUNDQmFzZWQgMTMgMCBSIF0KZW5kb2JqCjQg
+	MCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdIC9Db3Vu
+	dCAxIC9LaWRzIFsgMyAwIFIgXSA+PgplbmRvYmoKMTUgMCBvYmoKPDwgL1R5cGUgL0Nh
+	dGFsb2cgL091dGxpbmVzIDIgMCBSIC9QYWdlcyA0IDAgUiA+PgplbmRvYmoKMiAwIG9i
+	ago8PCAvTGFzdCAxNiAwIFIgL0ZpcnN0IDE3IDAgUiA+PgplbmRvYmoKMTcgMCBvYmoK
+	PDwgL1BhcmVudCAxOCAwIFIgL0NvdW50IDAgL0Rlc3QgWyAzIDAgUiAvWFlaIDAgNzgz
+	IDAgXSAvVGl0bGUgKP7/MK0w4zDzMNAwuVwwMDAgXDAwMDEpCj4+CmVuZG9iagoxOCAw
+	IG9iago8PCA+PgplbmRvYmoKMTYgMCBvYmoKPDwgL1BhcmVudCAxOCAwIFIgL0NvdW50
+	IDAgL0Rlc3QgWyAzIDAgUiAvWFlaIDAgNzgzIDAgXSAvVGl0bGUgKP7/MK0w4zDzMNAw
+	uVwwMDAgXDAwMDEpCj4+CmVuZG9iagoxOSAwIG9iago8PCAvTGVuZ3RoIDIwIDAgUiAv
+	TGVuZ3RoMSA5MDAwIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ab1aC3hU
+	1bVee5/nPDKZmcw7M5mZTGYmk/eDvEggY0hCeARCgpIggSQkEBAUMUaxQqOiQEQqooDg
+	bYuP8CpmCBEGKFzqRZHWKrbWB9VbrWhtr/m8txdbC2TmrnMmRMhX/fi+69dzZu291177
+	sfa/136e6Vp5dwfEQQ8wUDe3dcUikB/3OQDSuHB564oYr/8a/dDC7i5XjOdSAZhli1Ys
+	Xh7jxScBlI7Fy1aN5E94HSDumc6O1vaYHK6gX9iJETGejEM/pXN5170xXj+IfuWyOxaO
+	yBP2SPLlrfeO1A8fIO+6vXV5Ryy9+2eSfMUdd3WN8J3oV65Y2TGSnjSifm8CwVgd3AEK
+	uA0EoKDFtxlA+FzpABalkhyf9gzVlgXxZV+BTpT5BbU/kv1X3T9/5+uOK37VZvEfGKG4
+	ml7y+UAkAKAmKB9SbR6VyPnQ0YWhIT0MU5DKkQqQ0tNvskAP6YPHkX6KxMAS8iisQtqA
+	9DQSOxrai9xR8ugAKwaPkVVgI1ODKtY522B1WpQq52/ChB/8sfN9yyfHiRV772NiHYgD
+	xU1K8lPyE2gHJ3kBvOQ+qIFUsuNQYJmzBUV7YQVSDxIju4TsHUjKc54kGeBlCebxQRJL
+	Djv/lJvp/DQ3TMmA82V/mEXvF0nIBeOdpxw/dv67Y7HzJNL+mGhfAFMcdu51LHNuSQqT
+	HQPOJxxhgnk2x7y7HZj1sHN5YKuzPVeWT98apvsHnCUovyWochYWu50FjgvObH9YJMhn
+	OqY703J/7UzBjJjMhYV6gzqn3bHFOR5FSY4q/3ik42Qf2QlpZOeAd6rzGAaxuYemBIq3
+	hskPDtWk5nrD5L5gYU3q1kCN3xuY7vQGqv1+DN/ymrBWuFW4ScgT0oVUwSe4hUTBIOpF
+	ragR1aJSFEUhTH42UO7kj5P9UI6w7D8k8iIXJi9iJHucHJAjDxwRWZGKIBrC0Y/QeAkY
+	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
+	47NbFxQkTRn+cMSe6RPsZPxyPDPo8zO+uCJmMstqRC3VKHQKtV+UzFCnFG0JRFrjwKpP
+	CJMqNL81V7dZ2ETc9pbXlp8ePi3N4NJGQTK+hHzZ9ExmYxYuWTya3Ib9xudv4ywObaJ2
+	/RODbPbRwp2UOcnQ/pXD2yVdzNEvqYKbi9ZV/1JclvKUhoRJedDLmkrMDK9R6mw4fvFL
+	RgCMGmM842Qoc8VktdquuBevHllNmktOy4tGbOxl45YPd19D2uEL8iDE8ayTcLy6t/AV
+	4Hqav+fw/v0+Y25cksE5yb9m7ubN3NzI77YMVxUnqAjdpBAfWExf2SKPW2NkijxPS9b/
+	y+Dtvcb1lt0WRuDNfLG+Rt+oXyzcw9wjbDRsx5PaduM20zbzHthj0tbANONk81kjW8m9
+	ytF1XB/0kd3cHjOXkspZjGYTzk1GtSreIWqkwWJKxFZyQPrNRku/+kcmHDNvuxdLaFvx
+	lHHBMlxSgj+r3EJLbOjUDpfkWbMt5WVl0v6W4E4+qDcawWRarjebLRwhy/UAFtz2alef
+	lj0RfdJ8Z27OnaQZZ4l8nqECRYvy+Qukxa+waCIpIvmEYdxnfA+1VTzT84wvkJSdps3L
+	1nITNZGu14mTsNmLI5sjX7wYWTTIi8/H8W6L+GQKO+PKduZBaQ6Wn2gHftP6Z48OI3X4
+	FSQXiqBS/kI2Fc+jM/ELXT1+dbsZ5sA8TEHwy13sjMrjfxmgrnpqzcya9JqOZd0dXUsW
+	tsoprpY+HQONSNJ/I+5FWo+ERoVfIgG/NwK8hvQe0udIX2PRIpIFKRWpGKkmOvKgHEbD
+	BNfj6/naMfyMMfzsMbyk5bXltY/hZXyuqW/xGPmSMbz0Lena8m4fw98xhl8xhl85hpf/
+	U3JN/ask+f8Bw/o3ygplbmRzdHJlYW0KZW5kb2JqCjIwIDAgb2JqCjU3MzIKZW5kb2Jq
+	CjIxIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvQXNjZW50IDc3MCAvQ2Fw
+	SGVpZ2h0IDcxNyAvRGVzY2VudCAtMjMwIC9GbGFncyAzMgovRm9udEJCb3ggWy05NTEg
+	LTQ4MSAxNDQ1IDExMjJdIC9Gb250TmFtZSAvUEZKSE9IK0hlbHZldGljYSAvSXRhbGlj
+	QW5nbGUgMAovU3RlbVYgMCAvTWF4V2lkdGggMTUwMCAvWEhlaWdodCA2MzcgL0ZvbnRG
+	aWxlMiAxOSAwIFIgPj4KZW5kb2JqCjIyIDAgb2JqClsgMjc4IDAgMCAwIDAgMCAwIDAg
+	MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDgzMyA3
+	MjIKMCAwIDAgMCAwIDYxMSAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA1NTYgMCAwIDU1
+	NiA1NTYgMCA1NTYgMCAyMjIgMCAwIDIyMgowIDU1NiA1NTYgNTU2IDAgMzMzIDAgMjc4
+	IDAgMCAwIDAgNTAwIF0KZW5kb2JqCjEwIDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0
+	eXBlIC9UcnVlVHlwZSAvQmFzZUZvbnQgL1BGSkhPSCtIZWx2ZXRpY2EgL0ZvbnREZXNj
+	cmlwdG9yCjIxIDAgUiAvV2lkdGhzIDIyIDAgUiAvRmlyc3RDaGFyIDQ2IC9MYXN0Q2hh
+	ciAxMjEgL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iagoyMyAwIG9i
+	agooTWFjIE9TIFggMTAuNi44IFF1YXJ0eiBQREZDb250ZXh0KQplbmRvYmoKMjQgMCBv
+	YmoKKEQ6MjAxMjAyMDgyMDI0MTJaMDAnMDAnKQplbmRvYmoKMSAwIG9iago8PCAvUHJv
+	ZHVjZXIgMjMgMCBSIC9DcmVhdGlvbkRhdGUgMjQgMCBSIC9Nb2REYXRlIDI0IDAgUiA+
+	PgplbmRvYmoKeHJlZgowIDI1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAxMTgxNyAw
+	MDAwMCBuIAowMDAwMDA0OTkyIDAwMDAwIG4gCjAwMDAwMDI4NjkgMDAwMDAgbiAKMDAw
+	MDAwNDg0MyAwMDAwMCBuIAowMDAwMDAwMDIyIDAwMDAwIG4gCjAwMDAwMDI4NDkgMDAw
+	MDAgbiAKMDAwMDAwMjk3MyAwMDAwMCBuIAowMDAwMDAzOTQzIDAwMDAwIG4gCjAwMDAw
+	MDQ4MDcgMDAwMDAgbiAKMDAwMDAxMTU0OCAwMDAwMCBuIAowMDAwMDAzMDgzIDAwMDAw
+	IG4gCjAwMDAwMDM5MjMgMDAwMDAgbiAKMDAwMDAwMzk3OSAwMDAwMCBuIAowMDAwMDA0
+	Nzg3IDAwMDAwIG4gCjAwMDAwMDQ5MjYgMDAwMDAgbiAKMDAwMDAwNTE2OSAwMDAwMCBu
+	IAowMDAwMDA1MDQwIDAwMDAwIG4gCjAwMDAwMDUxNDcgMDAwMDAgbiAKMDAwMDAwNTI3
+	NiAwMDAwMCBuIAowMDAwMDExMDk4IDAwMDAwIG4gCjAwMDAwMTExMTkgMDAwMDAgbiAK
+	MDAwMDAxMTM0NCAwMDAwMCBuIAowMDAwMDExNzIzIDAwMDAwIG4gCjAwMDAwMTE3NzUg
+	MDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAyNSAvUm9vdCAxNSAwIFIgL0luZm8gMSAw
+	IFIgL0lEIFsgPDdkNmI5OTM3YzQzYzYzNzE3OTFmM2JkYTc2YjIyNjFmPgo8N2Q2Yjk5
+	MzdjNDNjNjM3MTc5MWYzYmRhNzZiMjI2MWY+IF0gPj4Kc3RhcnR4cmVmCjExODkyCiUl
+	RU9GCjEgMCBvYmoKPDwvQXV0aG9yIChLYXp1a2kgQUtBTUlORSkvQ3JlYXRpb25EYXRl
+	IChEOjIwMTIwMjA4MjAxNTAwWikvQ3JlYXRvciAoT21uaUdyYWZmbGUgNS4yLjMpL01v
+	ZERhdGUgKEQ6MjAxMjAyMDgyMDI0MDBaKS9Qcm9kdWNlciAyMyAwIFIgPj4KZW5kb2Jq
+	CnhyZWYKMSAxCjAwMDAwMTI1NTAgMDAwMDAgbiAKdHJhaWxlcgo8PC9JRCBbPDdkNmI5
+	OTM3YzQzYzYzNzE3OTFmM2JkYTc2YjIyNjFmPiA8N2Q2Yjk5MzdjNDNjNjM3MTc5MWYz
+	YmRhNzZiMjI2MWY+XSAvSW5mbyAxIDAgUiAvUHJldiAxMTg5MiAvUm9vdCAxNSAwIFIg
+	L1NpemUgMjU+PgpzdGFydHhyZWYKMTI3MDAKJSVFT0YK
+	</data>
+	<key>QuickLookThumbnail</key>
+	<data>
+	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
+	</data>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>キャンバス 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array/>
+		<key>Frame</key>
+		<string>{{228, 201}, {693, 937}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>キャンバス 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+	<key>saveQuickLookFiles</key>
+	<string>YES</string>
+</dict>
+</plist>
Binary file paper/images/topologymanager.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/topologymanagerandnode.graffle	Tue May 05 15:36:41 2015 +0900
@@ -0,0 +1,3452 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle6</string>
+		<string>156.11.0.206384</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {558.99997329711914, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2012-02-09 04:46:08 +0000</string>
+	<key>Creator</key>
+	<string>Kazuki AKAMINE</string>
+	<key>DisplayScale</key>
+	<string>1 in = 1 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>11</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Class</key>
+			<string>Group</string>
+			<key>Graphics</key>
+			<array>
+				<dict>
+					<key>Bounds</key>
+					<string>{{171.25, 661.75}, {131, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>233</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg932\cocoartf1265\cocoasubrtf210
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Configuration completed}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>AllowLabelDrop</key>
+					<false/>
+					<key>Class</key>
+					<string>LineGraphic</string>
+					<key>FontInfo</key>
+					<dict>
+						<key>Color</key>
+						<dict>
+							<key>w</key>
+							<string>0</string>
+						</dict>
+						<key>Font</key>
+						<string>Helvetica</string>
+						<key>Size</key>
+						<real>12</real>
+					</dict>
+					<key>Head</key>
+					<dict>
+						<key>ID</key>
+						<integer>197</integer>
+					</dict>
+					<key>ID</key>
+					<integer>183</integer>
+					<key>Points</key>
+					<array>
+						<string>{194.31444655447126, 701.67225523948969}</string>
+						<string>{127.18555316531135, 663.82780616536229}</string>
+					</array>
+					<key>Style</key>
+					<dict>
+						<key>stroke</key>
+						<dict>
+							<key>HeadArrow</key>
+							<string>0</string>
+							<key>HeadScale</key>
+							<real>1.4285709857940674</real>
+							<key>Legacy</key>
+							<true/>
+							<key>TailArrow</key>
+							<string>0</string>
+							<key>TailScale</key>
+							<real>0.5</real>
+						</dict>
+					</dict>
+					<key>Tail</key>
+					<dict>
+						<key>ID</key>
+						<integer>194</integer>
+					</dict>
+				</dict>
+				<dict>
+					<key>AllowLabelDrop</key>
+					<false/>
+					<key>Class</key>
+					<string>LineGraphic</string>
+					<key>FontInfo</key>
+					<dict>
+						<key>Color</key>
+						<dict>
+							<key>w</key>
+							<string>0</string>
+						</dict>
+						<key>Font</key>
+						<string>Helvetica</string>
+						<key>Size</key>
+						<real>12</real>
+					</dict>
+					<key>Head</key>
+					<dict>
+						<key>ID</key>
+						<integer>194</integer>
+					</dict>
+					<key>ID</key>
+					<integer>184</integer>
+					<key>Points</key>
+					<array>
+						<string>{369.79069865801625, 666.87066913052297}</string>
+						<string>{276.20930135998094, 707.12933528287965}</string>
+					</array>
+					<key>Style</key>
+					<dict>
+						<key>stroke</key>
+						<dict>
+							<key>HeadArrow</key>
+							<string>0</string>
+							<key>HeadScale</key>
+							<real>1.4285709857940674</real>
+							<key>Legacy</key>
+							<true/>
+							<key>TailArrow</key>
+							<string>0</string>
+							<key>TailScale</key>
+							<real>0.5</real>
+						</dict>
+					</dict>
+					<key>Tail</key>
+					<dict>
+						<key>ID</key>
+						<integer>191</integer>
+					</dict>
+				</dict>
+				<dict>
+					<key>AllowLabelDrop</key>
+					<false/>
+					<key>Class</key>
+					<string>LineGraphic</string>
+					<key>FontInfo</key>
+					<dict>
+						<key>Color</key>
+						<dict>
+							<key>w</key>
+							<string>0</string>
+						</dict>
+						<key>Font</key>
+						<string>Helvetica</string>
+						<key>Size</key>
+						<real>12</real>
+					</dict>
+					<key>Head</key>
+					<dict>
+						<key>ID</key>
+						<integer>191</integer>