Mercurial > hg > Papers > 2015 > sugi-master
changeset 12:ddab34e04068
add pdf and modify chapter2
author | sugi |
---|---|
date | Sun, 11 Jan 2015 23:00:07 +0900 |
parents | 0b3e5436fa48 |
children | ef47dab5764f |
files | paper/chapter2.tex paper/chapter4.tex paper/chapter5.tex paper/images/bitonicsort.pdf paper/images/changeAliceVNC.pdf paper/images/changeServer.graffle paper/images/changeTreeVNC.pdf paper/images/compareTcpDelay.pdf paper/images/comparenormalandtree.pdf paper/images/keepAlive.pdf paper/images/sortflow.pdf paper/images/treestructure.pdf paper/images/vnc.pdf |
diffstat | 13 files changed, 1631 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter2.tex Sat Jan 10 12:32:01 2015 +0900 +++ b/paper/chapter2.tex Sun Jan 11 23:00:07 2015 +0900 @@ -1,5 +1,128 @@ \chapter{Aliceを使った例題} \label{chapter:chapter2} +この章ではAliceを用いて作成されたアプリケーションを紹介する。これらのアプリケーションでAliceの性能テスト、必要な機能の洗い出しを行っている。 \section{AliceVNC} \label{section:AliceVNC} +AliceVNCは、当研究室で開発を行っているTreeVNCをAliceを用いて実装された、授業向け画面共有システムである。 + +授業でVNCを使う場合、1つのコンピュータに多人数が同時につながるため、性能が大幅に落ちるという問題がある(図\ref{fig:vnc})。この問題をノード同士を接続させ、木構造を構成することで負荷分散を行い解決したものがTreeVNCである(図\ref{fig:treestructure})。TreeVNCは、TightVNCのソースコードを利用して開発されている。 + +\begin{figure}[htbp] + \begin{minipage}{0.5\hsize} + \begin{center} + \includegraphics[width=80mm]{images/vnc.pdf} + \end{center} + \caption{VNCの構造} + \label{fig:vnc} + \end{minipage} + \begin{minipage}{0.5\hsize} + \begin{center} + \includegraphics[width=80mm]{images/treestructure.pdf} + \end{center} + \caption{TreeVNC, AliceVNCの構造} + \label{fig:treestructure} + \end{minipage} +\end{figure} + +しかし、TreeVNCにも問題が存在する。ノードを木構造にするためアプリケーション内で管理する必要があるが、不特定多数のノードを管理することは容易ではない。また、通信プロトコルは、TightVNCのプロトコルを拡張して利用している。アプリケーション層でプロトコルを拡張する場合、サーバとクライントの両方のプログラムコードを変更する必要があり、プロトコル処理部の保守性を維持していくことが難しい。 + +実際に、プロトコルを拡張したことにより予想外のエラーでTreeVNCが強制終了することがある。 + +さらに、TighVNCのアップデートに対応する必要がある。だが、アップデートによってはパッケージ構成が変更され、元のコードが残っていないことも考えられる。この場合、新しいTightVNCに作成した機能を1つずつ移行するしなければならないためコストが高い。 + +%分散アプリケーションは、デバックが行い難くエラーを再現することですら難しい。 + +これらの問題は、分散フレームワークAliceを使うことで解決することができる。ノードの管理は全てAliceが行なうため、プログラマーは画面共有の処理のみ記述すれば良い。プロトコルはAlice上で構築することでTightVNCのプロトコルと干渉することがないため、エラーが起こった場合はAliceで記述したコードのみを確認すればよい。 +アップデートの問題に関しては、TightVNCに必要なデータをputする処理さえ追加すれば良いため、問題なく対応できるはずである。 + +Aliceが以上の問題に対応できることを証明するため、また実用的なアプリケーションの記述が可能であるかを検証するためAliceVNCの開発を行った。 + +\subsection{AliceVNCの原理} +従来のVNCとTreeVNCの構造を比較した図を(図\ref{fig:comparenormalandtree})に示す。 + +\begin{figure}[!htbp] +\begin{center} +\includegraphics[width=130mm]{./images/comparenormalandtree.pdf} +\end{center} +\caption{AliceVNCの構造} +\label{fig:comparenormalandtree} +\end{figure} + + +表\ref{tb:oneporttraffic}はポート一本あたりの通信量である。従来のVNCの場合、ポート一本あたりの負荷はノード数に比例して増える。しかし、AliceVNCの場合はTreeの子供の数が一定なので、Node数に関係なく一定である。通信量が増えるほど、CPUに負荷がかかり性能が低下する。AliceVNCの場合、通信量は一定なので性能が低下せず使用することができる。 + +\begin{table}[htbp] +\caption{ポート一本あたりの通信量(NはNode数、MはTreeの子供の数)} +\label{tb:oneporttraffic} +\begin{center} + \begin{tabular}{|c|c|c|} \hline + & 従来のVNC & AliceVNC \\ \hline + 通信量 & N * データ量 & (M + 1) * データ量 \\ \hline + \end{tabular} +\end{center} +\end{table} + +\subsection{表示画面の切り替え} +ゼミなど発表者が多数いる場合、発表者が変わるたびにアプリケーションを立ち上げ直すのは手間である。 +そのため、アプリケーションに切り替えの機能を実装するのが望ましい。そこで、AliceVNCに切り替えの機能を実装した。 + +TreeVNCにも同様に切り替え機能が存在するが、AliceVNCの切り替え機能と挙動が異なる(図\ref{fig:changeTree} \ref{fig:changeAlice})。 + +\begin{figure}[htbp] + \begin{minipage}{0.5\hsize} + \begin{center} + \includegraphics[width=80mm]{images/changeTreeVNC.pdf} + \end{center} + \caption{TreeVNCにおける切り替え} + \label{fig:changeTree} + \end{minipage} + \begin{minipage}{0.4\hsize} + \begin{center} + \includegraphics[width=80mm]{images/changeAliceVNC.pdf} + \end{center} + \caption{AliceVNCにおける切り替え} + \label{fig:changeAlice} + \end{minipage} +\end{figure} + + +%図の変更 +TreeVNCの場合、Root Nodeが切り替えを要求したノードに対して接続を行う。AliceVNCの場合、切り替えを要求したノードが自分自身に対して接続を行う。そのため、AliceVNCは、VNC Serverとノード間の通信が速いという利点がある。しかし、図 \ref{fig:changeAlice}のように底辺にいるノードが配信を行った場合、全体に行き渡るまでにルートノードが配信する場合の2倍の時間がかかるという欠点も存在する。 + \section{水族館の例題(JavaFx)} + + \section{Jungle} -\section{bitonic sort} \ No newline at end of file + +\section{bitonic sort} +bitnic sortは並列ソートであり、Aliceがマルチコアに対応していることを確認するため実装した。 + +\begin{figure}[htbp] +\begin{center} +\includegraphics{images/sortflow.pdf} +\end{center} +\caption[width=100mm]{sort flow} +\label{fig:sortflow} +\end{figure} + +\subsection{処理の流れ} +指定された数の乱数を生成し、Sortを行う例題である。 +また、図\ref{fig:bitonicSort}はSortされるまでの流れをコラボレーションダイアグラムで示したものである。 +\begin{enumerate} +\item SetTask (Code Segment)が乱数列を分割してarray1とarray2にputする。 +\item \label {fig:start}replyされたData SegmentをSort (Code Segment)で昇順に整列させる。 +\item \label {fig:end}整列された配列を分割する。上半分をarray1-F、下半分をarray1-Bにputする。 +\item 分割した各数列(array2)に対しても同様に \ref{fig:start}と\ref{fig:end}を行う。 +\item \label {fig:start2}replyされた2つのData Segment(array1-B、array2-F)を合体させ、整列させる。 +\item 整列された配列の上半分をarray1-B、下半分をarray2-Fにputする。 +\item \label {fig:start1}replyされた2つのData Segment(array1-F、array1-B)を合体させ、整列させる。 +\item \label {fig:end1}整列された配列の上半分をarray1-F、下半分をarray1-Bにputする。 +\item \label {fig:end2}array2に対しても操作 \ref {fig:start1} と\ref {fig:end1} を行う。 +\item \ref {fig:start2} - \ref {fig:end2} を繰り返し行うことで全体がSortされる。 +\end{enumerate} + +\begin{figure}[htbp] +\begin{center} +\includegraphics{images/bitonicsort.pdf} +\end{center} +\caption{Aliceにおけるbitonic sortの動き} +\label{fig:bitonicSort} +\end{figure}
--- a/paper/chapter4.tex Sat Jan 10 12:32:01 2015 +0900 +++ b/paper/chapter4.tex Sun Jan 11 23:00:07 2015 +0900 @@ -1,7 +1,7 @@ \chapter{改善点} \label{chapter:chapter4} %この章では、分散フレームワークAliceに対して行った改善点を示す。 -\section{並列環境における改善} +\section{並列環境における改善} \label{section:conçurrent} 分散フレームワークAliceは、並列環境にも対応したフレームワークである。しかし、並列環境に対応していることを確認するためにbitonic sortを作成、計測したところ、Data Segmentの更新のオーバーヘッドにより、期待した効果を得ることができなかった。その際に、行った改善点を示す。 \subsection{SEDA Architecture} SEDA Architectureとはマルチコアスレッドを用いて大量の接続を管理し、受け取ったデータを処理ごとに分けられたステージと呼ばれるスレッドに投げ、処理が終わると次のステージにデータを伝搬させていく処理方式である。 @@ -44,7 +44,7 @@ この問題を解決するために、一般的なJavaのクラスオブジェクトでもデータ表現を可能にした。Local Data Segmentに対してputする場合は、Valueオブジェクトに変換せず一般的なJavaのクラスオブジェクトのままで、Remote Data Segmentに対してputする場合にのみValueに変換する。これにより、無駄な変換コストを抑えられるようになった。 -\section{分散環境における改善} +\section{分散環境における改善} \label{section:distribute} AliceVNCを実装するにあたり、Aliceの送受信部分に問題が発見された。ここでは発見された問題とその解決方法を示す。 \subsection{Data Segmentのデータ表現の変更} \label {subsection:changeDSFormat}
--- a/paper/chapter5.tex Sat Jan 10 12:32:01 2015 +0900 +++ b/paper/chapter5.tex Sun Jan 11 23:00:07 2015 +0900 @@ -1,15 +1,61 @@ \chapter{分散フレームワーク Alice の評価} \label{chapter:chapter5} この章では、Aliceを用いた実験方法等についてまとめ、第\ref{chapter:chapter4}章で行った効果の測定、先行研究であるFedarated Lindaとの性能比較を行い、評価を行なう。また、TreeVNCとAliceVNCの比較をコードの観点からも評価を行なう。 -\section{TORQUE Resource Manager を用いた実験方法} -Aliceの性能を実験する際に、学科にある共用のブレードサーバーを用いた。TORQUE Resource Manager (\url{http://www.adaptivecomputing.com/products/torque.php})というジョブスケジューラーによって、他の利用者とのリソースが競合しないように管理されている。 + +\section{並列環境の改善効果の測定} +第\ref{section:conçurrent}章 の分散環境における改善効果をbitonic sortによる実験によって測定を行なう。 -\subsection {TORQUE Resource Manager} +\subsection{実験環境} +コア数が少ないマシンでは、同時に走るCode Segmentが少ないことから、メニコア環境で実験を行った。 +\begin{table}[htbp] +\caption{実行環境の詳細} +\label{tb:MacPro} +\begin{center} +\begin{tabular} {|l|l|} + \hline + {\bf CPU}&Intel(R) Xeon(R) X5650 @2.67GHz\\ + \hline + {\bf 物理コア数}&12\\ + \hline + {\bf 論理コア数}&24\\ + \hline + {\bf CPU キャッシュ}&12MB\\ + \hline + {\bf Memory}&16GB\\ + \hline +\end{tabular} +\end{center} +\end{table} +\subsection{実験結果} +100万の要素をもつ配列のSortにかかる時間を計測する。同時に走るCode Segmentが物理コア数と同じになるように、分割数は10個で行った。 + +\begin{table}[html] +\caption{bitonic sortの結果} +\label{tb:result3} +\begin{center} +\begin{tabular}{|l|l|l|} +\hline + & 改善前 & 改善後 \\ + \hline + 実行時間 (ms)& 199.38 & 184.64 \\ +\hline +\end{tabular} +\end{center} +\end{table} + +\section{分散環境の改善効果の測定} +第\ref{section:distribute}章 の分散環境における改善効果をリングトポロジーによる実験によって測定を行なう。 +また、先行研究であるFederated Lindaとの比較も行なう。 + +\subsection{TORQUE Resource Manager を用いた実験方法} +分散環境の実験する際に、学科にある共用のブレードサーバーを用いた。TORQUE Resource Manager (\url{http://www.adaptivecomputing.com/products/torque.php})というジョブスケジューラーによって、他の利用者とのリソースが競合しないように管理されている。 + +\subsubsection {TORQUE Resource Manager} TORQUE は、1台のマスターと複数台のスレーブで構成される。(図 \ref{fig:torque}) スレーブは、マスターへ現在の自身のリソースの利用状況を報告する。 \begin{figure}[htbp] \begin{center} - \includegraphics[width=80mm]{./images/torque.pdf} + \includegraphics[width=80mm]{images/torque.pdf} \end{center} \caption{TORQUE の構成} \label{fig:torque} @@ -23,12 +69,6 @@ \lstinputlisting[label=src:torque, caption=10台(1台あたり4コア)で走らせる例]{source/Torque.sh} \end{table} -\section{並列環境における改善の測定} - -\section{分散環境における改善の測定} -第\ref{chapter:chapter4}章 の分散環境における改善の効果をリングトポロジーによる実験によって測定を行なう。 -また、先行研究であるFederated Lindaとの比較も行なう。 - \subsection{実験概要} リングのトポロジーを構成し、メッセージが 100 周する時間を計り、1周あたりの平均時間を求める実験である。(図 \ref{fig:topologyring}) @@ -114,7 +154,7 @@ 図\ref{fig:TcpNoDelay}からTCP\_NODELAYにおける影響はないことがわかる。 -\subsection{考察} -今回の +\section{考察} + \section{TreeVNCとのCodeの比較}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/images/changeServer.graffle Sun Jan 11 23:00:07 2015 +0900 @@ -0,0 +1,1453 @@ +<?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>{{143.4375, 563.625}, {81, 25}}</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>10</real> + </dict> + <key>ID</key> + <integer>53</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\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\deftab720 +\pard\pardeftab720\qc + +\f0\fs20 \cf0 \'8e\'a9\'95\'aa\'8e\'a9\'90\'67\'82\'c9\'90\'da\'91\'b1}</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>50</integer> + </dict> + <key>ID</key> + <integer>51</integer> + <key>Points</key> + <array> + <string>{222.1875, 612}</string> + <string>{141.1875, 612}</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>{{114.75, 586.125}, {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>{264.9375, 530.99999999999989}</string> + <string>{303.1875, 612}</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>{264.9375, 530.99999999999989}</string> + <string>{222.1875, 612}</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>{{276.75, 586.125}, {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>{{195.75, 586.125}, {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>43</integer> + </dict> + <key>ID</key> + <integer>45</integer> + <key>Points</key> + <array> + <string>{312.1875, 450}</string> + <string>{360.49998664855957, 530.99999999999989}</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>42</integer> + </dict> + <key>ID</key> + <integer>44</integer> + <key>Points</key> + <array> + <string>{312.1875, 450}</string> + <string>{264.9375, 530.99999999999989}</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>{{334.06248664855957, 505.12499999999989}, {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>43</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>{{238.5, 505.12499999999989}, {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>{312.1875, 369}</string> + <string>{312.1875, 450}</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>{{285.75, 424.125}, {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>{{285.75, 343.125}, {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>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>38</integer> + <key>Points</key> + <array> + <string>{231.1875, 121.5}</string> + <string>{322.3125, 40.5}</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>24</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{295.875, 14.625}, {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>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>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>Bounds</key> + <string>{{27, 14.625}, {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>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>33</integer> + </dict> + <key>ID</key> + <integer>35</integer> + <key>Points</key> + <array> + <string>{183.9375, 202.5}</string> + <string>{222.1875, 283.5}</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>28</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>32</integer> + </dict> + <key>ID</key> + <integer>34</integer> + <key>Points</key> + <array> + <string>{183.9375, 202.5}</string> + <string>{141.1875, 283.5}</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>28</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{195.75, 257.625}, {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>33</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>{{114.75, 257.625}, {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>32</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>29</integer> + </dict> + <key>ID</key> + <integer>31</integer> + <key>Points</key> + <array> + <string>{231.1875, 121.5}</string> + <string>{279.49998664855957, 202.5}</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>24</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>28</integer> + </dict> + <key>ID</key> + <integer>30</integer> + <key>Points</key> + <array> + <string>{231.1875, 121.5}</string> + <string>{183.9375, 202.5}</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>24</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{253.06248664855957, 176.625}, {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>29</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>{{157.5, 176.625}, {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>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>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>24</integer> + </dict> + <key>ID</key> + <integer>26</integer> + <key>Points</key> + <array> + <string>{231.1875, 40.5}</string> + <string>{231.1875, 121.5}</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>3</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{204.75, 95.625}, {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>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\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>{{204.75, 14.625}, {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>3</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>{{111.9375, 563.625}, {144, 81.000000000000114}}</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>52</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>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-11 12:44:21 +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>{{64, 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, 252.49998996655185}, {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>