<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>アシアルブログ</title>
		<link>http://kaiteki-rich.com/modules/pip_php/index.php?page=eachpipe&amp;pipe_id=4</link>
		<description></description>
		<lastBuildDate>Thu, 09 Sep 2010 18:01:07 +0900</lastBuildDate>
		<docs>http://backend.userland.com/rss/</docs>
		<generator>XOOPS - d3pipes</generator>
		<category>d3pipes</category>
		<webMaster>ネット副業で稼ぐ人のネタ帳</webMaster>
		<language>en</language>

				<item>
			<title>UMLを描こう - Vol.2 シーケンス図</title>
						<link>http://blog.asial.co.jp/748</link>
						<description> &lt;strong&gt;シーケンス図とは？&lt;/strong&gt;&lt;br /&gt;
シーケンス図とは，オブジェクトの動的な相互作用を表現するためのUML図です。&lt;br /&gt;
オブジェクト指向は，一言で言えば「役割分担」なので，オブジェクト同士のコミュニケーションが重要です。&lt;br /&gt;
シーケンス図では，オブジェクト同士のコミュニケーションによるインタラクション（相互作用）の様子を明確に表すことができます。&lt;br /&gt;
シーケンス図においてインタラクションは，メッセージ送受信のシーケンスとして図示されます。&lt;br /&gt;
クラス図がクラスの静的な定義とするなら，シーケンス図はオブジェクトの動的な振る舞いの定義と言えます。&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;3秒で分かるシーケンス図の描き方&lt;/strong&gt;&lt;br /&gt;
まずは登場するオブジェクトを並べます。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1281&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1281&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
長方形の中に「オブジェクト名：クラス名」と書いてオブジェクトを表します。&lt;br /&gt;
オブジェクト名とクラス名のどちらか一方を省略してもかまいません。&lt;br /&gt;
オブジェクトの下には「ライフライン」と呼ばれる線を引きます。&lt;br /&gt;
ライフラインは，オブジェクトがメモリ上に存在していることを表しています。&lt;br /&gt;
&lt;br /&gt;
あるオブジェクトが別オブジェクトのメソッドを呼び出すときは，下図のように表します。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1282&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1282&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
ここではcartControllerがcartのgetTotalPrice()メソッドを呼び出し，cartは戻り値を返しています。&lt;br /&gt;
メソッド呼び出しは，先端を黒く塗った矢印（callメッセージ）で表します。&lt;br /&gt;
returnは，点線矢印（replyメッセージ）で表します。replyメッセージは省略してもかまいません。&lt;br /&gt;
なお，ライフライン上に乗っている長方形は，活性区間バーと呼びます。&lt;br /&gt;
活性区間バーは，オブジェクトが処理を実行中であることを示します。&lt;br /&gt;
&lt;br /&gt;
戻り値を受け取る変数名や，メソッドの引数は下図のように表します。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1283&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1283&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
callメッセージのキャプションとして，&lt;br /&gt;
「戻り値を受け取る変数名 = メソッド名(引数1, 引数2, ...)」&lt;br /&gt;
と書くわけです。&lt;br /&gt;
&lt;br /&gt;
クラスのインスタンスを生成するときは，&lt;br /&gt;
下図のように≪create≫ステレオタイプを付けて表します。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1284&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1284&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
≪create≫ステレオタイプさえついていればよいので，&lt;br /&gt;
生成メッセージ名は「Java風に クラス名()」「PHP風に __construct()」「シンプルに new()」のどれでもかまいません。&lt;br /&gt;
&lt;br /&gt;
メソッド呼び出し元のオブジェクトを明示しない場合は，矢印を黒丸から始めます。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1285&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1285&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
上図においてcartControllerが自分のメソッドdialog()を呼び出したいとすると，&lt;br /&gt;
メッセージの矢印を自分に向ければOKです。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1286&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1286&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
ちなみに，分岐や繰り返しを表記する記法も仕様としてあるのですが，&lt;br /&gt;
図が複雑になってしまうので，下図のようにコメントで表現することをお勧めします。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1287&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1287&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
最後に，非同期callメッセージについて説明します。&lt;br /&gt;
非同期callメッセージの場合は，通常の（同期）callメッセージと違い，&lt;br /&gt;
メッセージを送るだけで返答を受け取らずそのまま次の処理に移ります。&lt;br /&gt;
非同期callメッセージは，矢印の先を黒くぬらずに表現します。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1288&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1288&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
メソッド呼び出しは通常，同期callメッセージで表されるので，&lt;br /&gt;
非同期callメッセージは記憶の片隅に置いておく程度で問題ないです。&lt;br /&gt;
&lt;br /&gt;
以上で，シーケンス図の描き方を説明しました。&lt;br /&gt;
シーケンス図を描くことで，処理全体のオブジェクト相互作用の様子をつかむことができます。&lt;br /&gt;
オブジェクトの振る舞いをコードではなくシーケンスとしてイメージできるようになれば，設計の視野を広げることができます。&lt;br /&gt;
また，プログラマ同士でクラスの実装について議論する場合，クラスファイル群に向き合うよりも，シーケンス図を見ながら議論すると効果的です。&lt;br /&gt;
皆さんもぜひ，シーケンス図を描いてみてください。&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;クラス図＋シーケンス図＝詳細設計&lt;/strong&gt;&lt;br /&gt;
前回，クラスの静的な設計はクラス図で表せることを説明しました。&lt;br /&gt;
そして今回，オブジェクト同士の動的なインタラクションがシーケンス図で表せることを説明しました。&lt;br /&gt;
クラス図が静的な側面の設計であり，&lt;br /&gt;
シーケンス図が動的な側面の設計だという感覚がつかんでいただけたでしょうか？&lt;br /&gt;
クラス図とシーケンス図が揃えば，コードに極めて近い設計＝詳細設計を表すことができます。&lt;br /&gt;
よって前回，「詳細設計ドキュメントを読み書きする際に最低限知っておくべき図は，クラス図とシーケンス図」と述べたわけです。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;シーケンス図上でプリファクタリングしよう&lt;/strong&gt;&lt;br /&gt;
皆さんは，「なんじゃこのクラス，使いずら。機能つめこみすぎ！」と思ったことはありませんか？&lt;br /&gt;
私は毎日のようにあります。言語によらず。&lt;br /&gt;
では，なぜそのような使いづらいクラスができてしまったのでしょうか？&lt;br /&gt;
それは，実装者が設計プロセスをすっとばして思いつきでコーディングしてしまったためです。&lt;br /&gt;
使いやすくて喜ばれるクラス設計を行うには，シーケンス図を事前に描いてインタラクション全体を見直していくことが大切です。&lt;br /&gt;
これをプリファクタリングと呼びます。&lt;br /&gt;
コーディングの前にプリファクタリングしておけば，設計がすっきりして使いやすいクラスが実装できます。&lt;br /&gt;
「実装後にリファクタリングすればいいのでは？」と思う人がいるかもしれませんが，実装後ではあまりに遅く，修正による副作用やテストのやり直しを考えると，極めてリスクが高いと言えます。&lt;br /&gt;
したがって，良いクラス設計を得るには，プリファクタリングが重要であり，かつ安全というわけです。&lt;br /&gt;
システムの中で重要な処理は，必ず実装前にシーケンス図を描きましょう。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;ではどうやって0から，クラス図とシーケンス図を導くのか？&lt;/strong&gt;&lt;br /&gt;
あるシステムを実装したいという「要求」から，どうやって，クラス図とシーケンス図を導けばよいのでしょうか？やはり，センスに頼るしかないのでしょうか？&lt;br /&gt;
いいえ，実はクラス図とシーケンス図を導く手法がすでにあります。心配はいりません。&lt;br /&gt;
具体的には，OOA（Object-Oriented Analysis: オブジェクト指向分析）と，OOD（Object-Oriented Design: オブジェクト指向設計）という2つの手法を用います。&lt;br /&gt;
まず，OOAで，要求を定義・分析して，分析レベルの設計図やドキュメントを作ります。次に，その分析レベルの成果物を元に，OODを用いてクラス図とシーケンス図を徐々に導出していきます。あとはそれをOOP言語で実装すれば完成です。&lt;br /&gt;
ちなみに，「OOA，OOD，OOP，そしてテスト手法」を統合したフルセットの開発手法のことを，OODP（Object-Oriented Development Process: オブジェクト指向開発プロセス）と呼びます。&lt;br /&gt;
オブジェクト指向開発プロセスは私の最も興味のある分野の一つなので，またそのうちblogで触れる機会があるかもしれません。 </description>
						<guid>http://blog.asial.co.jp/748</guid>
			<pubDate>Wed, 08 Sep 2010 22:30:00 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>sshでポートフォワード</title>
						<link>http://blog.asial.co.jp/747</link>
						<description> sshには言わずと知れた「ポートフォワード」という機能があります。&lt;br /&gt;
読んで時の如しで、sshの暗号化されたトンネルを利用し、任意のポートに来た通信を転送できます。&lt;br /&gt;
&lt;br /&gt;
何がうれしいかと言うと、リモートの 5432番 をローカルの 5432 にマッピング出きる。&lt;br /&gt;
つまり、sshさえ繋がれば、そのサーバから見える範囲ならなんでも使える！と言うことです。 &lt;br /&gt;
&lt;br /&gt;
1・ローカルへリモートのポートをマッピング&lt;br /&gt;
例えば、二つのホスト（chiba, shiga）があるとします。&lt;br /&gt;
chibaに、shigaの5900ポートをフォワードする場合は以下のようになります。&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;chiba:~$&lt;wbr /&gt;&amp;nbsp;ssh&lt;wbr /&gt;&amp;nbsp;shiga&lt;wbr /&gt;&amp;nbsp;-L&lt;wbr /&gt;&amp;nbsp;5900:localhost:5900&lt;/li&gt;&lt;/ol&gt;上記のセッションを張っていれば、localhostの5900はshigaの5900です。&lt;br /&gt;
&lt;br /&gt;
この状態で、下記のようにするとshigaのVNCにつながります。（もちろん、shigaが5900でVNC待ち受けしていれば）&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;chiba:~$&lt;wbr /&gt;&amp;nbsp;xvncviewer&lt;wbr /&gt;&amp;nbsp;localhost:0&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
では、コマンドの意味を解説します。&lt;br /&gt;
&lt;br /&gt;
・ ssh&lt;br /&gt;
　コマンドです。&lt;br /&gt;
・ shiga&lt;br /&gt;
　接続先ホストです。192.168.0.100とか www.asial.co.jp とか色々入ります。&lt;br /&gt;
・ -L 5900:localhost:5900&lt;br /&gt;
　今回の肝です。-Lは、「ローカルにリモートのボートをマッピング」という命令で、書式は&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;ローカルのポート:リモートから見たホスト:リモートから見たホストに対してマッピングしたいポート&lt;/li&gt;&lt;/ol&gt;　となります。&lt;br /&gt;
　この場合は、ローカルの5900に、リモートから見たlocalhostの5900番をマッピングと言う意味になります。&lt;br /&gt;
&lt;br /&gt;
細かいことはmanpageで。&lt;br /&gt;
&lt;br /&gt;
もちろん、localhost以外の場合は以下のようになります。&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;chiba:~$&lt;wbr /&gt;&amp;nbsp;ssh&lt;wbr /&gt;&amp;nbsp;shiga&lt;wbr /&gt;&amp;nbsp;-L&lt;wbr /&gt;&amp;nbsp;5900:hikone:5900&lt;/li&gt;&lt;/ol&gt;なお、hikoneからは、shigaが5900にアクセスしているように見えます。&lt;br /&gt;
この方法は、chibaからhikoneに直接アクセス出来ない場合に役立ちます。(chibaからのパケットをRejectしているとか、hikoneがnatの中など)&lt;br /&gt;
&lt;br /&gt;
2・ローカルのポートをリモートにマッピング&lt;br /&gt;
先ほどとは逆です。オプションは、-Rを使用します。&lt;br /&gt;
&lt;br /&gt;
chibaの5900番をshigaの5900番にマッピング&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;chiba:~$&lt;wbr /&gt;&amp;nbsp;ssh&lt;wbr /&gt;&amp;nbsp;shiga&lt;wbr /&gt;&amp;nbsp;-R&lt;wbr /&gt;&amp;nbsp;5900:localhost:5900&lt;/li&gt;&lt;/ol&gt;-R リモート(shiga)のボート:ローカル(chiba)から見たホスト:ローカル(ry)ポート&lt;br /&gt;
&lt;br /&gt;
こんなこと出来て何がうれしいかというと、例えば、natの中にあるホストにnatの外から直接アクセス出来ます。&lt;br /&gt;
&lt;br /&gt;
さっきのhikoneがプライベートアドレスしか持っていないが、shigaがnatしている場合、chibaからhikoneへは、chiba-&gt;saga-&gt;hikoneとフォワードする必要があるが、逆にhikoneからchibaは直接見えるため、以下のようにすれば一発でできる。&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;hikone~:$&lt;wbr /&gt;&amp;nbsp;ssh&lt;wbr /&gt;&amp;nbsp;chiba&lt;wbr /&gt;&amp;nbsp;-R&lt;wbr /&gt;&amp;nbsp;5900:localhost:5900&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
3・共有&lt;br /&gt;
通常 -L または -R でセッションを張った場合、ローカル(接続元)では、127.0.0.1:5900のように、loが使用されます。&lt;br /&gt;
-g をつけると、0.0.0.0:5900のように、どこからでも接続を受け付けるようになるので、他のマシンからもアクセスさせることが出来ます。&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;chiba:~$&lt;wbr /&gt;&amp;nbsp;ssh&lt;wbr /&gt;&amp;nbsp;shiga&lt;wbr /&gt;&amp;nbsp;-g&lt;wbr /&gt;&amp;nbsp;-L&lt;wbr /&gt;&amp;nbsp;5900:hikone:5900&lt;/li&gt;&lt;/ol&gt;この状態で、ichikawa(chibaにアクセス出来るホスト)から、&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;ichikawa:~$&lt;wbr /&gt;&amp;nbsp;xvncviewer&lt;wbr /&gt;&amp;nbsp;chiba:0&lt;/li&gt;&lt;/ol&gt;とすれば、ichikawaからhikoneの5900にアクセス出来ます。&lt;br /&gt;
&lt;br /&gt;
データセンタのDBサーバに、オフィスの中からつなぎたいなどの場合に便利ですね。&lt;br /&gt;
&lt;br /&gt;
2.5・少々複雑なフォワード&lt;br /&gt;
-Lでネスト&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;ichikawa:~$&lt;wbr /&gt;&amp;nbsp;ssh&lt;wbr /&gt;&amp;nbsp;chiba&lt;wbr /&gt;&amp;nbsp;-L&lt;wbr /&gt;&amp;nbsp;5900:localhost:5900&lt;/li&gt;&lt;li&gt;chiba:~$&lt;wbr /&gt;&amp;nbsp;ssh&lt;wbr /&gt;&amp;nbsp;saga&lt;wbr /&gt;&amp;nbsp;-L&lt;wbr /&gt;&amp;nbsp;5900:hikone:5900&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
-Lと-Rを組み合わせ&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;ichikawa:~$&lt;wbr /&gt;&amp;nbsp;ssh&lt;wbr /&gt;&amp;nbsp;chiba&lt;wbr /&gt;&amp;nbsp;-L&lt;wbr /&gt;&amp;nbsp;5900:localhost:5900&lt;/li&gt;&lt;li&gt;hikone:~$&lt;wbr /&gt;&amp;nbsp;ssh&lt;wbr /&gt;&amp;nbsp;chiba&lt;wbr /&gt;&amp;nbsp;-R&lt;wbr /&gt;&amp;nbsp;5900:localhost:5900&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
やっていることは同じですが、後者の方がトンネル内に通している本数が少ないため軽量です。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4・暗号化&lt;br /&gt;
もちろん、sshでつないでいる範囲しかされないので注意してください。&lt;br /&gt;
3の例の場合は&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;ichikawa&lt;wbr /&gt;&amp;nbsp;-vnc-&gt;&lt;wbr /&gt;&amp;nbsp;chiba&lt;wbr /&gt;&amp;nbsp;-ssh-&gt;&lt;wbr /&gt;&amp;nbsp;shiga&lt;wbr /&gt;&amp;nbsp;-vnc-&gt;&lt;wbr /&gt;&amp;nbsp;hikone&lt;/li&gt;&lt;/ol&gt;vncの範囲は暗号化されないため気をつけてください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5・最後に&lt;br /&gt;
長々と書いてきましたが、何といっても「百聞は一見に如かず」と言うことで、実際に動かしてみるのが一番です。&lt;br /&gt;
実際、複雑な条件なんて使おうと思う環境が無ければ使いません。&lt;br /&gt;
&lt;br /&gt;
実際に使う機会がやってきたときは、&lt;br /&gt;
・sshにはポートをマッピングする機能がある&lt;br /&gt;
・ポートフォワードという&lt;br /&gt;
あたりを覚えていれば、ググれば何か出てきます。あとは使って覚えてください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
本文中のchibaとかshigaは特に意味はありません。&lt;br /&gt;
ホスト名になにかないかと思ったら突然チバ！シガ！サガ！と思ったのでそのまま使いました。 </description>
						<guid>http://blog.asial.co.jp/747</guid>
			<pubDate>Mon, 06 Sep 2010 20:39:23 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>もうすぐ健康診断があるんだ・・・</title>
						<link>http://blog.asial.co.jp/746</link>
						<description> こんにちは。阿部です。&lt;br /&gt;
&lt;br /&gt;
皆様、健康的な生活を送っていらっしゃいますでしょうか。&lt;br /&gt;
&lt;br /&gt;
アシアルではもうじき定期健康診断にいかなければいけません。。。&lt;br /&gt;
もう。。自分の体重が会社に保管されると思うと憂鬱です。&lt;br /&gt;
&lt;br /&gt;
体重おとさないと！と思いつつも運動はしたくないし、お菓子はやめたくないというこの気持ち。&lt;br /&gt;
世の中のぽっちゃりさんには理解していただけると思います。&lt;br /&gt;
&lt;br /&gt;
ダイエット時のおやつは100kcalまで、といわれますが、100kcalなんて一瞬ですよね。&lt;br /&gt;
飴を何粒か食べたら終了です。おっそろしい。&lt;br /&gt;
&lt;br /&gt;
しかもそれを消費するためには、ウォーキングなら30分くらい、ジョギングなら15分くらい（体格によります）運動しなければいけません。おっそろしい。&lt;br /&gt;
&lt;br /&gt;
しかしながら、運動しないダイエットをすると筋肉がつかないので、リバウンドしやすい・・・らしいですね。&lt;br /&gt;
&lt;br /&gt;
ずっと楽して痩せる方法を探してきましたが、リバウンドしたくないなら、そして健康的に痩せたいなら、やっぱり適度な食事制限と運動するのが一番のようです。&lt;br /&gt;
あとは、カロリーだけでなく、糖質とか脂質にも気をつけないといけないそうです。&lt;br /&gt;
めんどい。&lt;br /&gt;
&lt;br /&gt;
私にとっては、すんごい難題ですが、、まずは柔軟体操から頑張ります＞＜&lt;br /&gt;
お菓子は我慢できないからどこかで調整しつつ頑張ります＞＜&lt;br /&gt;
とブログに書いてしまって頑張らないといけない状況にしてみます＞＜&lt;br /&gt;
&lt;br /&gt;
アシアルの肥満予備軍の方々も一緒に頑張りましょうね（- - </description>
						<guid>http://blog.asial.co.jp/746</guid>
			<pubDate>Thu, 02 Sep 2010 20:58:17 +0900</pubDate>
			<category>日常</category>
		</item>
				<item>
			<title>Photoshopで壁紙を作りながら、基本的な使い方を覚える</title>
						<link>http://blog.asial.co.jp/745</link>
						<description> こんにちは、鴨田です。&lt;br /&gt;
&lt;br /&gt;
もう９月だというのに、相変わらずうだるような暑さが続いていますね。&lt;br /&gt;
席が窓際にあるので、陽が傾くと、微妙に太陽が当たって、灼熱地獄です。&lt;br /&gt;
&lt;br /&gt;
さて、今日はPhotoshopを使って、写真を元に壁紙を作りながら、&lt;br /&gt;
基本的なPhothshopの使い方の説明をしたいと思います。&lt;br /&gt;
&lt;br /&gt;
デザイナーの方々には、特になんのTIPSにもなりませんが、&lt;br /&gt;
業務でちょっとしたことをデザイナーにオペレートしてもらうのも、&lt;br /&gt;
ちょっと気が引けるというような方や、&lt;br /&gt;
会社でPhotoshopが使えるけど、持て余してるという方には、&lt;br /&gt;
まずここから覚えるといいかもしれません。&lt;br /&gt;
&lt;br /&gt;
○実作業&lt;br /&gt;
&lt;br /&gt;
1.Photoshopを立ち上げて、壁紙にしたい写真を開く&lt;br /&gt;
&lt;br /&gt;
メニュー：ファイル→開く&lt;br /&gt;
ショートカット：Ctrl+O&lt;br /&gt;
ファイルを直接Photoshopにドラッグアンドドロップ&lt;br /&gt;
&lt;br /&gt;
で開くことができます。&lt;br /&gt;
&lt;br /&gt;
ここでは、自分で撮ったベルリンの戦勝記念塔(ジーゲスゾイレ)の写真を使います。&lt;br /&gt;
大きさは1600px*1200pxなので、そのままの大きさで使用したいと思います。&lt;br /&gt;
もし画像サイズを変える場合でも、まずは大きいまま加工して、&lt;br /&gt;
最後に画像サイズを換えることをオススメします。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1244&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2.念のため、16bit画像にする&lt;br /&gt;
&lt;br /&gt;
メニュー：イメージ→モード→16bit/チャンネル&lt;br /&gt;
を選択します。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1254&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1254&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
画像を加工すると、細かな部分のグラデーションなどが飛んでしまうことがあるので、&lt;br /&gt;
マシンパワーに余裕がある場合、設定を一時的に16bitにした方がよろしいと思います。&lt;br /&gt;
作業が終わったら、逆に8bitに戻しから、出力します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.写真の明るさを調整する&lt;br /&gt;
&lt;br /&gt;
メニュー：イメージ→色調補正→トーンカーブ&lt;br /&gt;
ショートカット：Ctrl+M&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1255&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1255&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
この写真はちょっと暗いので明るくするために、カーブを山なりにします。&lt;br /&gt;
メリハリを出したいときは、左側が下がるようになだらかな波を描くようにします。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1245&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1245&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
同じような機能として、レベル補正があります。&lt;br /&gt;
&lt;br /&gt;
メニュー：イメージ→色調補正→レベル補正&lt;br /&gt;
ショートカット：Ctrl+L&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1256&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1256&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
左の黒い三角と右の白い三角をそれぞれ山の始まりと終わりに持って行きます。&lt;br /&gt;
すると、画像にメリハリが出て、ぐっと引き締まります。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1246&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1246&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
この作業はどんな画像に対しても適応できるので、&lt;br /&gt;
画像加工における必須の作業になります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.看板の文字を読みやすく(強調)する&lt;br /&gt;
&lt;br /&gt;
まずは看板の周りをなげなわツールで囲います。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1247&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1247&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
メニュー：イメージ→色調補正→色の置き換え&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1257&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1257&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
元画像の左の看板の白い文字のところをクリックして、色を置き換える選択範囲に指定します。&lt;br /&gt;
そのままだと右側の看板の一番右の文字が指定範囲に含まれづらいので、&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1258&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1258&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
スポイトにプラスマークの付いたアイコンをクリックして、&lt;br /&gt;
元画像の右側の看板の文字部分をクリックして、指定範囲を広げます。&lt;br /&gt;
&lt;br /&gt;
許容量と明度の調整をして、ＯＫを押します。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1248&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1248&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.画像を鮮やかにする&lt;br /&gt;
&lt;br /&gt;
メニュー：イメージ→色調補正→色相・彩度&lt;br /&gt;
ショートカット：Ctrl+L&lt;br /&gt;
&lt;br /&gt;
像の金色、看板の青みを見ながら、&lt;br /&gt;
最適と思えるところに数値を合わせます。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1259&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1259&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
あまりやりすぎると、ノイズが混じってくるので、&lt;br /&gt;
ほどほどにしておきます。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1249&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1249&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.背景の透明化&lt;br /&gt;
&lt;br /&gt;
先程の彩度の調整などで、空にノイズが混じってしまったので、&lt;br /&gt;
いっそのこと、背景を透明にしてしまいたいと思います。&lt;br /&gt;
&lt;br /&gt;
念のため、元のレイヤーをコピーして取っておき、非表示にします。&lt;br /&gt;
&lt;br /&gt;
背景レイヤーを右クリック→「レイヤーを複製」&lt;br /&gt;
背景レイヤーをつかんだまま、新規レイヤー作成アイコンにドラッグ＆ドロップ&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1268&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1268&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
のどちらかで、レイヤーを複製して、&lt;br /&gt;
レイヤー名の左にある目玉アイコンをクリックします。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1269&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1269&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
コピーした方のレイヤーに対して、自動選択ツールで範囲を選択します。&lt;br /&gt;
許容値：20 アンチエイリアス：オン　隣接：オン&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1274&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1274&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
の設定で、Shiftを押しながら、ひとつひとつ丁寧にやります。&lt;br /&gt;
面倒くさかったら、許容値を増やして(32程度)、隣接のチェックを外してください。&lt;br /&gt;
精度は低くなりますが、クリック数は減ると思います。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1250&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1250&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
選択し終わったら、選択部分をマスクに追加します。&lt;br /&gt;
レイヤーパレットの下側にある左から３番目のマスクアイコンを&lt;br /&gt;
クリックするだけです。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1271&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1271&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1251&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1251&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
そのままだと、像が逆に切り取られている状態なので、&lt;br /&gt;
&lt;br /&gt;
レイヤーのマスク部分を選択して、&lt;br /&gt;
&lt;br /&gt;
メニュー：イメージ→色調補正→階調の反転&lt;br /&gt;
ショートカット：Ctrl+I&lt;br /&gt;
&lt;br /&gt;
で、マスクを反転しましょう。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1272&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1272&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
画像のマスク部分が逆転します。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1252&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1252&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.空を新しく作る&lt;br /&gt;
&lt;br /&gt;
「背景のコピー」レイヤーの下に、新しくレイヤーを作ります。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1273&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1273&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
グラデーションツールで、空を作ります。&lt;br /&gt;
&lt;br /&gt;
左端はスポイトツールを使って、像の足元に残った空の色を使い、&lt;br /&gt;
真ん中と右端はお好みの色でＯＫです。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1275&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1275&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
グラデーションツールの塗り方を、&lt;br /&gt;
通常の線形グラデーションから円形グラデーションに変えます。&lt;br /&gt;
像の足元から、左上に向かって、ドラッグします。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1276&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1276&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1253&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1253&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
比較すると、こんな感じです。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1277&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1277&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
以上で、基本的な部分は出来上がりましたが、&lt;br /&gt;
これだけだと物足りない気がするので、&lt;br /&gt;
次回、装飾を施していきたいと思います。&lt;br /&gt;
&lt;br /&gt;
こんな感じになる予定です。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1278&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1278&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1279&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1279&quot; /&gt;&lt;/a&gt; </description>
						<guid>http://blog.asial.co.jp/745</guid>
			<pubDate>Wed, 01 Sep 2010 19:27:10 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>はじめての共同作業 Canvas編 (node.js + websocket)</title>
						<link>http://blog.asial.co.jp/744</link>
						<description> こんにちは、中川です。&lt;br /&gt;
先月無事に結婚をした開発者が一名おり、近年アシアルでは徐々に既婚者が増えてきている状況です。&lt;br /&gt;
ということで、結婚といえば共同作業ですよね。&lt;br /&gt;
&lt;br /&gt;
今までは、一人で作業していて大変なことが色々あったと思いますが、&lt;br /&gt;
二人（複数）でやれば、乗り越えられることもあることでしょう。&lt;br /&gt;
Webアプリでも最近は、より共同作業がしやすい環境ができつつあるように思います。&lt;br /&gt;
&lt;br /&gt;
そこで、今回はWebSocketを使ったリアルタイム通信でのやり取りを行い、&lt;br /&gt;
一緒にお絵描きができるサンプルアプリを作ってみました。&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;a href=&quot;/read_file.php?id=1243&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1243&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;■■■概要■■■&lt;/strong&gt;&lt;br /&gt;
・アプリ概要&lt;br /&gt;
・・Canvas + WebSocket&lt;br /&gt;
&lt;br /&gt;
・対応ブラウザ&lt;br /&gt;
・・Chrome or Safari (他、WebSocketが使えるブラウザ）&lt;br /&gt;
&lt;br /&gt;
・サーバ側プログラム&lt;br /&gt;
・・&lt;a href=&quot;http://nodejs.org/&quot;&gt;node.js 0.2.0&lt;/a&gt;&lt;br /&gt;
・・&lt;a href=&quot;http://expressjs.com/&quot;&gt;express@1.0.0rc2&lt;/a&gt;&lt;br /&gt;
・・&lt;a href=&quot;http://github.com/miksago/node-websocket-server&quot;&gt;websocket-server@1.3.50 &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
※express, websocket-server は node.js のパッケージ管理システムの npm ( &lt;a href=&#039;http://github.com/isaacs/npm&#039;&gt;http://github.com/isaacs/npm&lt;/a&gt; ) でインストールしました。&lt;br /&gt;
&lt;br /&gt;
node.js用のwebsocketサーバは何個かあるみたいですが&lt;br /&gt;
( 参照： &lt;a href=&#039;http://github.com/ry/node/wiki/modules&#039;&gt;http://github.com/ry/node/wiki/modules&lt;/a&gt; )、&lt;br /&gt;
今回は、比較的更新もされていて、手軽に利用できそうな node-websocket-server を使ってみました。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;■■■アプリ構成■■■&lt;/strong&gt;&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;.&lt;/li&gt;&lt;li&gt;`--&lt;wbr /&gt;&amp;nbsp;canvas-share&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;|--&lt;wbr /&gt;&amp;nbsp;public&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;|&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;|--&lt;wbr /&gt;&amp;nbsp;index.html&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;|&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;`--&lt;wbr /&gt;&amp;nbsp;js&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;|&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;`--&lt;wbr /&gt;&amp;nbsp;client.js&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;`--&lt;wbr /&gt;&amp;nbsp;server.js&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
プログラム一式ダウンロード：&lt;a href=&quot;http://blog.asial.co.jp/sample/744/canvas-share.tar.gz&quot;&gt;canvas-share.tar.gz&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;■■■プログラム内容■■■&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
・index.html&lt;br /&gt;
&lt;ol class=&quot;html-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;DOCTYPE&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;meta&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;UTF-8&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;Canvas&lt;wbr /&gt;&amp;nbsp;Share&lt;wbr /&gt;&amp;nbsp;Demo&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;layer0&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;position:&lt;wbr /&gt;&amp;nbsp;absolute;&lt;wbr /&gt;&amp;nbsp;top:&lt;wbr /&gt;&amp;nbsp;0;&lt;wbr /&gt;&amp;nbsp;left:&lt;wbr /&gt;&amp;nbsp;0;&lt;wbr /&gt;&amp;nbsp;border:&lt;wbr /&gt;&amp;nbsp;10px&lt;wbr /&gt;&amp;nbsp;solid&lt;wbr /&gt;&amp;nbsp;#dddddd;&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;900px&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;600px&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;button&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;clear&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;Clear&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;position:absolute;&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/javascript&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;utf-8&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/javascript&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;/js/client.js?t=1149&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/javascript&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;$(function(){&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;var&lt;wbr /&gt;&amp;nbsp;painter&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;new&lt;wbr /&gt;&amp;nbsp;Painter(&#039;layer0&#039;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;//&lt;wbr /&gt;&amp;nbsp;WebScoket対応の場合は、コネクションを設定&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;if&lt;wbr /&gt;&amp;nbsp;(window[&amp;quot;WebSocket&amp;quot;])&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;var&lt;wbr /&gt;&amp;nbsp;conn&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;new&lt;wbr /&gt;&amp;nbsp;WebSocket(&amp;quot;ws://&amp;quot;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;document.location.host&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&amp;quot;/&amp;quot;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;painter.setConnection(conn);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;}&lt;wbr /&gt;&amp;nbsp;else&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;alert(&#039;This&lt;wbr /&gt;&amp;nbsp;browser&lt;wbr /&gt;&amp;nbsp;is&lt;wbr /&gt;&amp;nbsp;not&lt;wbr /&gt;&amp;nbsp;supported.&#039;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;$(&#039;#clear&#039;).click(function()&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;painter.clear();&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;});&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;});&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
・js/client.js&lt;br /&gt;
※通信部分関連のみ抜粋(全体はこちら)&lt;br /&gt;
&lt;br /&gt;
&lt;ol class=&quot;js-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;/**&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;*&lt;wbr /&gt;&amp;nbsp;マウス移動時の処理&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;*/&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;Painter&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;prototype&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;move&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isDrawing&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bx&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;:&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;by&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;:&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;:&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clientX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;ay&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;:&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clientY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;:&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;strokeStyle&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;各座標をjson形式でサーバに通知&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;drawLine&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;ax&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;ay&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;/**&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;*&lt;wbr /&gt;&amp;nbsp;キャンバスのクリア処理&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;*/&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;Painter&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;prototype&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clear&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;CLEAR処理をサーバに通知&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;@CLEAR&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clearCanvas&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;/**&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;*&lt;wbr /&gt;&amp;nbsp;WebSocketのコネクション設定&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;*/&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;Painter&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;prototype&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setConnection&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;onclose&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;Close&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;onopen&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(){&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;Connected&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//メッセージ受信時の処理(クリアと描画)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;onmessage&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&amp;gt;&lt;wbr /&gt;&amp;nbsp;-&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;@CLEAR&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&amp;gt;&lt;wbr /&gt;&amp;nbsp;-&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clearCanvas&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;parse&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;drawLine&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
WebSocketが有効な場合は、マウスの移動座標と色をサーバに通知するようにし、また、受信したJSONデータからCanvasへの描画処理を行います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
・server.js&lt;br /&gt;
&lt;ol class=&quot;js-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;ws&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;websocket-server&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;/**&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;*&lt;wbr /&gt;&amp;nbsp;web-server&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;*/&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;express&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;express&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;app&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;express&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;createServer&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;app&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;configure&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(){&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;ファイルをそのまま出力するディレクトリの設定&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;app&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;express&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;staticProvider&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;__dirname&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;/public&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;})&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;/**&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;*&lt;wbr /&gt;&amp;nbsp;websocket-server&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;*/&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//var&lt;wbr /&gt;&amp;nbsp;json&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;JSON.stringify;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;ws&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;createServer&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;:&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;app&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;})&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;listening&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(){&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;Listening&lt;wbr /&gt;&amp;nbsp;for&lt;wbr /&gt;&amp;nbsp;connections.&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;})&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;connection&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;){&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;Hello&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//server.broadcast(&amp;quot;@HELLO&amp;quot;);&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;全てのログを初回接続時に送信&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&amp;gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;])&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;メッセージ受信処理&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;){&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&amp;gt;&lt;wbr /&gt;&amp;nbsp;-&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;broadcast&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;points&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;broadcast&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;})&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;})&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;){&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//server.broadcast(&amp;quot;@BYE&amp;quot;);&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;})&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;listen&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;3333&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
expressは、単純に静的ファイル(html,js)を出力しているだけですので、今回は特に必要性はありませんが、プログラム記述の楽がしたかっただけです。&lt;br /&gt;
&lt;br /&gt;
WebSocketサーバ側の処理では、投げられたjson文字列データをログ配列に保持し、そのまま broadcast で接続中のクライアントに返すようにしています。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;■■■動作確認■■■&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
サーバを起動します。&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;$&lt;wbr /&gt;&amp;nbsp;cd&lt;wbr /&gt;&amp;nbsp;canvas-share/&lt;/li&gt;&lt;li&gt;$&lt;wbr /&gt;&amp;nbsp;node&lt;wbr /&gt;&amp;nbsp;server.js&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
あとは、対応ブラウザを複数ウィンドウ立ち上げて、それぞれ &lt;br /&gt;
http: //example.com:3333/ にアクセスすれば動作します。&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;a href=&quot;/read_file.php?id=1243&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1243&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;■■■最後に■■■&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
今回の実装はかなりやっつけな部分もありますがご容赦いただければと思います。&lt;br /&gt;
&lt;br /&gt;
現行のIEやFirefoxなど主要ブラウザがまだWebScoketに対応していませんが、&lt;a href=&quot;http://socket.io/&quot;&gt;socket.io&lt;/a&gt; などのライブラリもあるようですので、対応させることもできそうです。&lt;br /&gt;
&lt;br /&gt;
node.jsを利用すれば、phpでは難しい大量の同時接続をさばくこともできますので、このようなリアルタイムコラボレーション系のWebアプリも簡単につくることができそうですね。&lt;br /&gt;
今後も色々と試していきたいと思います。 </description>
						<guid>http://blog.asial.co.jp/744</guid>
			<pubDate>Wed, 01 Sep 2010 13:15:54 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>「PHP×Flex（後編）」PHPテクニカルセミナー（無料）第４弾の募集を開始しました！！</title>
						<link>http://blog.asial.co.jp/743</link>
						<description> 皆さま。こんにちは。&lt;br /&gt;
和田でございます。&lt;br /&gt;
&lt;br /&gt;
みなさま、もうご存知かとは思いますが、現在アシアルでは、全5回にわけて「開発者向け、一歩先を行くためのテクニカルセミナー（無料）」を開催しております。&lt;br /&gt;
おかげさまで、昨日開催いたしました第３回「PHP×Flex（前編）」も定員の100名を超える方々からのご参加をいただき、大盛況のうちに幕となりました。&lt;br /&gt;
お忙しい中、セミナーに参加して下さった皆さま、誠にありがとうございました。&lt;br /&gt;
&lt;br /&gt;
さて今回は、そんな大盛況だった「PHP×Flex」の後編「第４回　PHP×Flex（後編）:Flexを用いたWebシステム開発」のご紹介です。&lt;br /&gt;
&lt;br /&gt;
開催日は9月29日（水）。申し込みも開始しております。&lt;br /&gt;
今回も第１線で活躍している弊社のエンジニアが講演いたしますので、皆さまふるってご応募ください！！！&lt;br /&gt;
&lt;br /&gt;
FlexとPHPの連携の基礎を学びながら簡単なFlexアプリケーションを作成していきますので、ご興味のある皆さま、そして前編に参加されていない皆さまもチェックしていただけたらと思います。&lt;br /&gt;
&lt;br /&gt;
お申し込みは、以下URLよりお願い致します。&lt;br /&gt;
今回は、「第４回　PHP×Flex（後編）」のみの応募となりますのでご注意ください。&lt;br /&gt;
&lt;a href=&quot;http://www.asial.co.jp/seminar/&quot;&gt;&lt;a href=&#039;http://www.asial.co.jp/seminar/&#039;&gt;http://www.asial.co.jp/seminar/&lt;/a&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.asial.co.jp/seminar/&quot;&gt;&lt;a href=&quot;/read_file.php?id=1242&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1242&quot; /&gt;&lt;/a&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【開催概要】&lt;br /&gt;
&lt;br /&gt;
日程： 8月29日(水） 10:00 ～ 12:00（※ 開始30分前より入室可能）&lt;br /&gt;
会場： 山王健保会館2F 多目的ホール&lt;br /&gt;
交通： 地下鉄銀座線・南北線：溜池山王駅 7出口　徒歩3分&lt;br /&gt;
　　　 地下鉄千代田線：赤坂駅 1出口　徒歩5分&lt;br /&gt;
　　　 地下鉄銀座線・丸ノ内線：赤坂見附駅出口　下車徒歩7分&lt;br /&gt;
主催： アシアル株式会社&lt;br /&gt;
受講対象者： Webシステムにおいて1～3年の開発経験のある方&lt;br /&gt;
定員： 100名（※ 定員となり次第、受付を終了させていただきます 。）&lt;br /&gt;
参加費： 無料（事前登録制）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【第４回　PHP×Flex（後編）】Flexを用いたWebシステム開発&lt;br /&gt;
&lt;br /&gt;
近年、システム開発の現場では、従来型のWebアプリケーションに加え、FlexやSilverlightといったRIAの技術を用いた、インタラクティブなアプリケーション開発のニーズが高まってきています。&lt;br /&gt;
&lt;br /&gt;
この講演では、RIAの中で最も普及しているFlexを取り上げ、サーバ側のPHPと連携させる簡単なアプリケーションを作成していきながら、Flex4の基本的な機能について解説していきます。&lt;br /&gt;
&lt;br /&gt;
※ PHP×Flex編は前後編の2回構成です。&lt;br /&gt;
今回の後編ではFlexとPHPの連携の基礎を学びながら簡単なFlexアプリケーションの作成方法を解説します。&lt;br /&gt;
さあ、楽しいFlexの世界を触れてみましょう。&lt;br /&gt;
&lt;br /&gt;
講演者：アシアル株式会社　橋本 章史（ハシモト　アキフミ）アシアル株式会社のPHPプログラマー兼Flexプログラマー&lt;br /&gt;
以前は大手SIerでSEとして開発に携わっていたが、その中で「もっとプログラミングに深く携わりたい」という気持ちを持ち、アシアル株式会社に入社。&lt;br /&gt;
Flex、Javascriptを用いたインタラクティブなWebシステムの開発を得意とする。&lt;br /&gt;
現在は最も得意とするFlexを用いたシステム開発に従事し、充実した日々を送っている。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【第３回 「PHP×Flex（前編）」セミナーを受講された皆さまの声】&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
・Flexでの開発の流れを知れたのが良かった&lt;br /&gt;
・業務用に使えそう&lt;br /&gt;
・Flexを使ってみようとおもった&lt;br /&gt;
・Flexは想像していたよりははじめ易いと思った&lt;br /&gt;
・自分で開発を行ううえでのイメージが出来た&lt;br /&gt;
・「何で?!」と思うような点のTipsも含まれていたので実践に役立ちそう&lt;br /&gt;
・Flexを使った動的コンテンツの作成について詳しく知れた&lt;br /&gt;
・内容が濃くて良かった。スピード感も良い&lt;br /&gt;
・プログラム作成者の観点で資料がまとまっていた&lt;br /&gt;
・PHPとActionScriptの書き方の比較がありイメージしやすかった&lt;br /&gt;
・Flex、ActionScriptnitについて詳しく知りたくなりました&lt;br /&gt;
・基本的な部分を丁寧に説明してくれていたため、とても分かりやすかった&lt;br /&gt;
------------------------------------------------------ </description>
						<guid>http://blog.asial.co.jp/743</guid>
			<pubDate>Thu, 26 Aug 2010 12:40:43 +0900</pubDate>
			<category>日常</category>
		</item>
				<item>
			<title>【HTML5】Canvasでお絵かきしてみた（前編）</title>
						<link>http://blog.asial.co.jp/742</link>
						<description> こんにちは、橋本です。&lt;br /&gt;
&lt;br /&gt;
今回はHTML5シリーズ第二弾ということで、canvasを使ってお絵かきしてみました。&lt;br /&gt;
今回は前編で、基本的な機能について触れてみたいと思います。&lt;br /&gt;
&lt;br /&gt;
さっそくサンプルコードを以下に。&lt;br /&gt;
&lt;br /&gt;
canvas_sample.html&lt;br /&gt;
&lt;ol class=&quot;html-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;ja&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;meta&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;UTF-8&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;js/canvas.js&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/javascript&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;link&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;media&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;all&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;stylesheet&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;css/main.css&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/css&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;canvas&lt;wbr /&gt;&amp;nbsp;test&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;container&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;leftContainer&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;clearfix&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;layer0&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;position:&lt;wbr /&gt;&amp;nbsp;absolute;&lt;wbr /&gt;&amp;nbsp;top:&lt;wbr /&gt;&amp;nbsp;0;&lt;wbr /&gt;&amp;nbsp;left:&lt;wbr /&gt;&amp;nbsp;0;&lt;wbr /&gt;&amp;nbsp;border:&lt;wbr /&gt;&amp;nbsp;10px&lt;wbr /&gt;&amp;nbsp;solid&lt;wbr /&gt;&amp;nbsp;#dddddd;&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;900px&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;600px&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;rightContainer&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;controler&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;section&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;red&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;R:&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;red&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;colorBar&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;green&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;G:&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;green&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;colorBar&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;blue&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;B:&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;blue&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;colorBar&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;A:&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;colorBar&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;colorSample&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;30px&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;30px&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;colorText&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;readonly&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;section&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;section&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;lineWidthRange&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;line&lt;wbr /&gt;&amp;nbsp;width:&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;lineWidthRange&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;lineSample&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;section&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;section&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;erase&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;erase&lt;wbr /&gt;&amp;nbsp;mode:&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;erase&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;checkbox&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;section&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
canvas.js&lt;br /&gt;
&lt;ol class=&quot;js-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(){&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isDrawing&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;selectedColor&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorVars&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorText&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorSample&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;erase&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;restore&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidthRange&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineSample&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isErase&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;){&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;layer0&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;getContext&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;2d&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;erase&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;erase&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;restore&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;restore&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidthRange&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;lineWidthRange&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;イベントリスナーの設定&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;mousemove&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas_mouseMoveHandler&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;mouseup&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas_mouseUpHandler&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;mousedown&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas_mouseDownHandler&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;mouseout&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas_mouseOutHandler&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;erase&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;erase_clickHandler&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidthRange&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;change&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidthRange_changeHandler&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//controlerの設定&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorBars&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;getElementsByClassName&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;colorBar&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorBars&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&amp;lt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bar&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorBars&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bar&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bar&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;==&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;?&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;:&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bar&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;change&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorBar_changeHandler&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bar&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bar&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorSample&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;colorSample&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorText&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;colorText&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;convertColorObjToStr&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setColorText&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setSelectedColor&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setColorSample&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidthRange&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineSample&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;lineSample&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setLineSample&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;convertColorObjToStr&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;red&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;green&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;blue&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;alpha&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;100);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;function&lt;wbr /&gt;&amp;nbsp;setColorSample()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;var&lt;wbr /&gt;&amp;nbsp;context&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;colorSample.getContext(&amp;quot;2d&amp;quot;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;context.beginPath();&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;context.strokeStyle&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;selectedColor;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;context.fillStyle&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;selectedColor;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;context.fillRect(0,&lt;wbr /&gt;&amp;nbsp;0,&lt;wbr /&gt;&amp;nbsp;colorSample.width,&lt;wbr /&gt;&amp;nbsp;colorSample.height);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;function&lt;wbr /&gt;&amp;nbsp;setLineSample()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;var&lt;wbr /&gt;&amp;nbsp;context&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;lineSample.getContext(&amp;quot;2d&amp;quot;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;今の状態をリセット&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;context.clearRect(0,&lt;wbr /&gt;&amp;nbsp;0,&lt;wbr /&gt;&amp;nbsp;lineSample.width,&lt;wbr /&gt;&amp;nbsp;lineSample.height);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;context.beginPath();&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;context.arc(lineSample.width&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineSample&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;2,&lt;wbr /&gt;&amp;nbsp;lineWidth&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-builtin&quot;&gt;Math&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;PI&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isErase&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;strokeStyle&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;rgba(0,&lt;wbr /&gt;&amp;nbsp;0,&lt;wbr /&gt;&amp;nbsp;0,&lt;wbr /&gt;&amp;nbsp;1)&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;stroke&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;strokeStyle&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;selectedColor&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fillStyle&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;selectedColor&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setColorText&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorText&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setSelectedColor&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;selectedColor&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;rgba(&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;+&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorBar_changeHandler&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorBars&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&amp;lt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bar&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorBars&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bar&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;bar&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;convertColorObjToStr&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setColorText&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setSelectedColor&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorStr&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setColorSample&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setLineSample&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas_mouseOutHandler&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isDrawing&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas_mouseDownHandler&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isDrawing&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clientX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clientY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas_mouseUpHandler&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isDrawing&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;canvas_mouseMoveHandler&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isDrawing&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isErase&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;?&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;eraseLine&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;:&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;drawLine&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;drawLine&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fixedX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clientX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fixedY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clientY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beginPath&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;strokeStyle&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;selectedColor&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineCap&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineJoin&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;moveTo&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeY&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineTo&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fixedX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fixedY&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;stroke&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;closePath&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fixedX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fixedY&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;eraseLine&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clientX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;2;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;var&lt;wbr /&gt;&amp;nbsp;y&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;event.clientY&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;10&lt;wbr /&gt;&amp;nbsp;-&lt;wbr /&gt;&amp;nbsp;lineWidth&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;clearRect&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;erase_clickHandler&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;isErase&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setLineSample&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-reserved&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidthRange_changeHandler&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;setLineSample&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;})()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
*cssは略&lt;br /&gt;
&lt;br /&gt;
JSのコードが結構汚いんですが、サンプルってことで華麗にスルーしていただけると幸いです。（次回までに綺麗にしておきます;）&lt;br /&gt;
&lt;br /&gt;
実際のサンプルは&lt;a href=&quot;http://s1.asial.co.jp/~akifumi-h/canvas_sample.html&quot;&gt;こちら&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
まず、canvasで画像を描画する際には、対象のcanvasのcontextを取得します。&lt;br /&gt;
&lt;ol class=&quot;boxcode-main&quot;&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;canvas&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;document.getElementById(&quot;layer0&quot;);&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;context&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;canvas.getContext(&quot;2d&quot;);&lt;/li&gt;&lt;/ol&gt;contextに対して処理を行うことで、画像を描画することが出来ます。&lt;br /&gt;
&lt;br /&gt;
次に基本的な線を引く処理。&lt;br /&gt;
線を引くためには、以下の手順を踏みます。&lt;br /&gt;
&lt;ol class=&quot;js-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;1.&lt;wbr /&gt;&amp;nbsp;線を描きますよーと宣言&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beginPath&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;2.&lt;wbr /&gt;&amp;nbsp;線の設定（しなくてもOK）&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;strokeStyle&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;selectedColor&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;線の色&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;線の太さ&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineCap&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;線の始点、終点の形&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineJoin&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;線のつなぎ目の形&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;3.&lt;wbr /&gt;&amp;nbsp;線の始点を設定&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;moveTo&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beforeY&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;4.&lt;wbr /&gt;&amp;nbsp;線の終点を設定&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineTo&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fixedX&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fixedY&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;5.&lt;wbr /&gt;&amp;nbsp;線を描く&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;stroke&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;6.&lt;wbr /&gt;&amp;nbsp;線が書き終わりましたよーという宣言&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;closePath&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
線の各種設定については、以下のページに詳しく載ってるので参照してください。&lt;br /&gt;
&lt;a href=&quot;http://www.html5.jp/canvas/ref.html&quot;&gt;HTML5.jp-Canvasリファレンス&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
今回のサンプルでは、連続した線を引くために、線を引き終わった座標を、beforeX, beforeYに格納し、次の線を描き始めるときの始点として指定しています。&lt;br /&gt;
&lt;br /&gt;
次に四角形を描く処理。&lt;br /&gt;
四角形を描くためには、以下の手順を踏みます。&lt;br /&gt;
&lt;ol class=&quot;js-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;1.線を描きますよーの宣言&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beginPath&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;2.&lt;wbr /&gt;&amp;nbsp;設定&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;strokeStyle&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;selectedColor&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;線の色&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fillStyle&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;selectedColor&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;塗りつぶしの色&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;3.&lt;wbr /&gt;&amp;nbsp;四角形を描く&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;fillRect&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorSample&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;colorSample&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
上記サンプルのfillRectは、塗りつぶした四角形を描くメソッドです。&lt;br /&gt;
引数は、書き始めるx座標、書き始めるy座標、四角形の幅、四角形の高さとなっています。&lt;br /&gt;
座標は、左上が(0, 0)です。これは、canvas全体共通です。&lt;br /&gt;
&lt;br /&gt;
ちなみに、枠だけの四角形を描きたいときは、strokeRect()、四角形を消したいときは、clearRect()メソッドを使います。今回のサンプルでは、消しゴムを実装するために、clearRect()メソッドを使っています。&lt;br /&gt;
&lt;br /&gt;
次は円を描く処理です。&lt;br /&gt;
円を描くためには以下の手順。&lt;br /&gt;
&lt;ol class=&quot;js-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;1.&lt;wbr /&gt;&amp;nbsp;例のやつ&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;beginPath&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;2.&lt;wbr /&gt;&amp;nbsp;円の形を指定&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;arc&lt;/span&gt;&lt;span class=&quot;js-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineSample&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;2,&lt;wbr /&gt;&amp;nbsp;lineSample.height&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-identifier&quot;&gt;lineWidth&lt;/span&gt;&lt;span class=&quot;js-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;2,&lt;wbr /&gt;&amp;nbsp;0,&lt;wbr /&gt;&amp;nbsp;Math.PI*2,&lt;wbr /&gt;&amp;nbsp;false);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;3.&lt;wbr /&gt;&amp;nbsp;オプションを指定&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;context.strokeStyle&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;selectedColor;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;context.fillStyle&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;selectedColor;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;/span&gt;&lt;span class=&quot;js-quotes&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;js-string&quot;&gt;&lt;wbr /&gt;&amp;nbsp;4.&lt;wbr /&gt;&amp;nbsp;描く&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;js-string&quot;&gt;context.fill();&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
まず、arc()メソッドを使って円の設定をします。&lt;br /&gt;
引数は、円の中心のx座標、円の中心のy座標、円の半径、円を書き始める角度、円を書き終える角度、円を描く向きとなっています。最後の引数の円を描く向きは、trueを指定すると、反時計回り、falseを指定すると、時計回りになります。&lt;br /&gt;
&lt;br /&gt;
今回は普通の円なので、最後の指定はあまり意味がないのですが、一部が欠けている円を描きたい時には、向きが重要になってくると思います。&lt;br /&gt;
&lt;br /&gt;
ちなみに、枠だけの円を描きたいときは、最後のfill()をstroke()に変更すればOKです。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
今回はとりあえず、ここまで。&lt;br /&gt;
&lt;br /&gt;
次回後編では、グラデーション、画像の取り込みなどについて触れていきたいと思います。 </description>
						<guid>http://blog.asial.co.jp/742</guid>
			<pubDate>Wed, 25 Aug 2010 14:27:28 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>MacにgroongaのMySQL用ストレージエンジン</title>
						<link>http://blog.asial.co.jp/741</link>
						<description> こんばんは。笹亀です。&lt;br /&gt;
&lt;br /&gt;
2年間お世話になった神楽坂からお引越しをすることになりました。&lt;br /&gt;
名前がカッコいいからと言う単純な理由から選んだ割には、&lt;br /&gt;
だいぶいい街で快適に過ごさせていただきました。&lt;br /&gt;
ということで現在は家探し中です。&lt;br /&gt;
&lt;br /&gt;
さて今日はgroonga（ぐるんが）のMySQL用ストレージエンジンを実際に使ってみたくなり、&lt;br /&gt;
インストールをしてみようと思います。&lt;br /&gt;
&lt;br /&gt;
そもそもgroongaは今もまだ広く利用されている全文検索システムSennaの後継と言われています。groongaストレージエンジンはMySQLでSennaを利用するTritonnの後継プロジェクトとなります。MySQLではver5.1からPluggable Storage Engineインタフェースが採用されたことで、&lt;br /&gt;
以前よりも柔軟に独自のストレージエンジンを利用できるようになりました。&lt;br /&gt;
&lt;br /&gt;
上記のことからMySQL経由でもgroongaを利用できるようになるということです。groongaのMySQLストレージエンジンを経由するとgroongaをSQLコマンドでも利用することができるようになります。&lt;br /&gt;
&lt;br /&gt;
それでは早速インストールしていこうと思います。当然ですが、MySQLの5.1とgroongaが既にインストールされている必要があります。&lt;br /&gt;
　※自分の環境はMacなので若干パス情報などが違いますので、ご注意くださいませ。&lt;br /&gt;
　※なお、MySQLのインストールは省略します。&lt;br /&gt;
&lt;br /&gt;
まずはgroongaをソースをダウンロードしてインストールする。&lt;br /&gt;
&lt;a href=&#039;http://groonga.org/download/&#039;&gt;http://groonga.org/download/&lt;/a&gt;からダウンロードし、適当な箇所に解凍します。&lt;br /&gt;
コンパイルをしてインストールします。&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;./configure&lt;wbr /&gt;&amp;nbsp;--prefix=/opt&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;make&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;sudo&lt;wbr /&gt;&amp;nbsp;make&lt;wbr /&gt;&amp;nbsp;install&lt;/li&gt;&lt;li&gt;※正常にソースからインストール完了&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
groongaストレージエンジンのビルドしてみた。&lt;br /&gt;
&lt;a href=&#039;http://github.com/mroonga/mroonga/downloads&#039;&gt;http://github.com/mroonga/mroonga/downloads&lt;/a&gt;からダウンロードし、適当な箇所に解凍します。&lt;br /&gt;
&lt;br /&gt;
「&lt;a href=&#039;http://mroonga.github.com/tutorial.html&#039;&gt;http://mroonga.github.com/tutorial.html&lt;/a&gt;#id3」のページを元にインストールを進めているときにここで意味深な説明分を発見した。&lt;br /&gt;
「with-mysqlでMySQLソースコードディレクトリ」ということはソースをダウンロードしないといけないのか・・？と思い、MacPortsなので「/opt/local/var/macports/distfiles/mysql5/mysql-5.1.43.tar.gz」からコピーして展開し、展開先を設定しました。&lt;br /&gt;
&quot;libdir&quot;でMySQLバイナリのプラグイン用ディレクトリ、&lt;br /&gt;
&quot;with-groonga&quot;でgroongaのインストール先を指定してconfigureを実行します。&lt;br /&gt;
&lt;br /&gt;
最終的にこんな感じ&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;./configure&lt;wbr /&gt;&amp;nbsp;--with-mysql=&lt;wbr /&gt;&amp;nbsp;/Users/sasa/Public/src/mysql-5.1.43&lt;wbr /&gt;&amp;nbsp;--libdir=/opt/local/lib/mysql5/mysql/plugin&lt;wbr /&gt;&amp;nbsp;--with-groonga=/opt&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
むむ。。。エラーが出るぞ。。&lt;br /&gt;
checking whether we are using the GNU C++ compiler... yes&lt;br /&gt;
checking whether g++ accepts -g... yes&lt;br /&gt;
checking dependency style of g++... gcc3&lt;br /&gt;
checking how to run the C preprocessor... gcc -E&lt;br /&gt;
checking build system type... Invalid configuration `/Users/sasa/Public/src/mysql-5.1.43&#039;: machine `/Users/sasa/Public/src/mysql&#039; not recognized&lt;br /&gt;
&lt;br /&gt;
いろいろ調べてみる。。&lt;br /&gt;
どうやらソースからインストールされているMySQLのビルドしたソースが必要みたいだ。&lt;br /&gt;
MacPortsでインストールしたbuild先を探して確認してみる。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1241&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1241&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;portdbpath&lt;/li&gt;&lt;li&gt;MacPorts&lt;wbr /&gt;&amp;nbsp;がダウンロードしたソース、インストールされた&lt;wbr /&gt;&amp;nbsp;ports&lt;wbr /&gt;&amp;nbsp;のレシート、主要なレジストリといった作業データを保存するディレクトリ。&#039;${prefix}&#039;&lt;wbr /&gt;&amp;nbsp;におけるパス名の制約と同じ制約があります。&lt;/li&gt;&lt;/ol&gt;ということは「opt/local/var/macports」内でbuildしていることがわかった。&lt;br /&gt;
上記箇所に移動してみるとbuildフォルダを発見。&lt;br /&gt;
過去にインストールしたアプリごとにbuildファイルがあることを期待して確認をしていましたが、見事に空っぽでした。インストールするごとに維持的な展開場所として利用するんだとうと勝手に解釈しました。&lt;br /&gt;
&lt;br /&gt;
どうしても自分の環境にインストールしたかったのですが、見事にうまくインストールできませんでした。MySQLをソースからインストールしてMySQLのbuildソースがある状態でインストールしないといけないということがよくわかりましたが、ソースからインストールしか使えないというのはいかがなものかと思います。&lt;br /&gt;
&lt;br /&gt;
yumなどでインストールした場合はgroongaのMySQL用ストレージエンジンはインストールできるんでしょうか？&lt;br /&gt;
　※buildソースって保持しているのでしょうか？なんかうまく出来ない気がしています。&lt;br /&gt;
&lt;br /&gt;
もし、この辺りの情報に詳しい方々、&lt;br /&gt;
知識不足の自分にご教授いただけますと幸いでございます。 </description>
						<guid>http://blog.asial.co.jp/741</guid>
			<pubDate>Mon, 23 Aug 2010 22:35:27 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>Appleのサイトで見たiPhone4をFireworksで描いてみました-1/2</title>
						<link>http://blog.asial.co.jp/740</link>
						<description> 皆さまこんにちは。アシアルの和田です。&lt;br /&gt;
&lt;br /&gt;
今日は、前々回に引き続き、FireworksでiPhone4を作成してみました。&lt;br /&gt;
今回はAppleのサイトにあったiPhone4（斜めから見た）をお手本にしています。&lt;br /&gt;
&lt;br /&gt;
ただ、今回はちょっと長くなりそうなので、ボタン部分は次回に作りたいと思います。&lt;br /&gt;
なので、今日はボタンなしのiPhone4の斜め版です。&lt;br /&gt;
（ちょっと変ですかね!?）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
では、まずはじめに&lt;br /&gt;
700×700pxのキャンバスを作ります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-1　iPhone4をトレース&lt;br /&gt;
正面から見たiPhoneをトレースします。&lt;br /&gt;
その際、トレースしたオブジェクトの線を赤や青など、目立つ色で描くと分かりやすくなります。（下のイメージです）&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1224&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1224&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-2　斜めから見たイメージに変形&lt;br /&gt;
Appleのサイトに掲載されていた斜めからのアングルにするために、ステップ－１で作成したオブジェクト全てを一括して「変形ツール」で変形します。&lt;br /&gt;
また、奥行き間が出るように、変形したオブジェクトを数ピクセル動かしたりして微調整します。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1225&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1225&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-3-1　ステンレスバンドを作成&lt;br /&gt;
トレースした一番外側のオブジェクトを下図のように下側にコピーします。&lt;br /&gt;
そして、遠近感がでるようにコピーしたオブジェクトの左右のコーナーを微調整します。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1226&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1226&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
そして、こんな感じに、2つのオブジェクトを結合します。&lt;br /&gt;
ちなみに、バンドの切れ目の線（ペンツールで作ったオブジェクト）も描いておきます。&lt;br /&gt;
実際に、黒いオブジェクトをのせるだけでステンレスバンドの切れ目を表現できます。&lt;br /&gt;
（結合方法は、ナイフツールでオブジェクトをカットして、ペンツールで結合です。）&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1227&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1227&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-4　ステンレスバンドを着色&lt;br /&gt;
出来上がったステンレスバンドを下記のようにグラデーションを設定します。&lt;br /&gt;
・線形グラデーション：#000000→#AFAFAF→#AFAFAF→#000000&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1228&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1228&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
次に、真ん中のコーナー部分の鉄っぽいハイライト（グラデーション）をつけます。&lt;br /&gt;
３つのオブジェクトを矩形ツールで作成し「エッジをぼかす」を適用します。&lt;br /&gt;
&lt;br /&gt;
・ベタ塗り：#000000　エッジをぼかす（10px）　透明度100%&lt;br /&gt;
・ベタ塗り：#FFFFFF　エッジをぼかす（15px）　透明度80%&lt;br /&gt;
・ベタ塗り：#000000　エッジをぼかす（15px）　透明度100%&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1229&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1229&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-3-2　ステンレスバンドの角を表現&lt;br /&gt;
ここで、ステンレスバンドの角を表現します。&lt;br /&gt;
方法は、ステンレスバンドと隣接したオブジェクトを白でベタ塗り、エッジをぼかすを1pxに設定します。&lt;br /&gt;
・ベタ塗り：#FFFFFF　エッジをぼかす（1px）&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1230&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1230&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-3-3　ステンレスバンドの側面を表現&lt;br /&gt;
次に、ステンレスバンドの側面（iPhoneを正面から見たときに見える面）を演出するために、先ほど作ったオブジェクトをコピーして、左と上に数ピクセルずらし、グレーのグラデーションをかけます。&lt;br /&gt;
・線形グラデーション：#474747→#666666→#474747　エッジをぼかす（2px）&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1231&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1231&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-3-4　ステンレスバンドとプラスチック部分との境界を表現&lt;br /&gt;
先ほど作ったグレーのグラデーションをコピー＆ペースト。若干縮小（数ピクセル程度）して、手前の下図のように配置します。&lt;br /&gt;
こうすることで、ステンレスバンドと黒い部分との境界を表現します。&lt;br /&gt;
・ベタ塗り：#0000003　エッジをぼかす（1px）&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1232&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1232&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-4　iPhoneのプラスチック部分（黒い部分）の作成&lt;br /&gt;
これは、iPhoneの上面（画面などがある部分）の作成です。&lt;br /&gt;
先ほど作った黒いオブジェクトを更にコピー＆ペースト&lt;br /&gt;
縮小して下記のように配置してください。（さっきと同じように手前側の隙間を大きく取ります）&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1233&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1233&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
そしてこのオブジェクトに、&lt;br /&gt;
フィルタ／Photoshopライブ効果／べべルとエンボスを下記の設定で適用します。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1234&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1234&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
そうするとこんな感じです。&lt;br /&gt;
大分、それっぽくなってきました。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1235&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1235&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-5　iPhoneのパーツ（スピーカー、カメラ、マイク）の作成&lt;br /&gt;
こちらについては、前回のブログとほぼ同じ方法で描いていますので、今回は省略します。&lt;br /&gt;
ご興味のある方は&lt;a href=&quot;http://blog.asial.co.jp/714&quot;&gt;「iPhone4をFireworksで作ってみました」&lt;/a&gt;を参照して下さい。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1236&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1236&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ステップ-6　ハイライトの作成&lt;br /&gt;
iPhoneのハイライト部分を作成するために、下記のように赤い線のオブジェクトを作成。そしてステップ-5で作成した黒いオブジェクトをコピーして、赤い線のオブジェクトと&lt;br /&gt;
変更／パスを結合／交差をして作成します。&lt;br /&gt;
こんな感じです。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1237&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1237&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
そして、白の不透明から透明へのグラデーションを設定します。&lt;br /&gt;
こちらも、以前のブログにて紹介しておりますので、今回は省略します。&lt;br /&gt;
例によって（スパイ大作戦みたいですね…古い？）&lt;br /&gt;
ご興味のある方は&lt;a href=&quot;http://blog.asial.co.jp/714&quot;&gt;「iPhone4をFireworksで作ってみました」&lt;/a&gt;を参照して下さい。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1238&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1238&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ハイライトを上と左方向に数ピクセル移動します。(&lt;br /&gt;
Appleのサイトの画像はこんな感じになっていたので）&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1239&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1239&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
そして、背景を黒にしたら出来上がりです…。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1240&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1240&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
といいつつ、ボタン類は次回に持越しです。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
それではまたでございます。 </description>
						<guid>http://blog.asial.co.jp/740</guid>
			<pubDate>Thu, 19 Aug 2010 22:17:18 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>iPad版の会社紹介を作ってみました</title>
						<link>http://blog.asial.co.jp/739</link>
						<description> こんにちは。小林です。&lt;br /&gt;
&lt;br /&gt;
iPadの発売から、さまざまなお客様のアプリケーションをiPad上で構築してきましたが、「アシアルでもiPadを活用してみよう！」ということで、「iPad版の会社紹介」を作ってみました。&lt;br /&gt;
&lt;br /&gt;
ベータ版として、本当にシンプルなビューアー仕様になっていますが、将来的には、もっとデザインとか、動きを入れていきたいな・・・と考えています。&lt;br /&gt;
&lt;br /&gt;
今後の改良にご期待ください！&lt;br /&gt;
&lt;br /&gt;
次回は、御社にこちらのアプリを持参の上、アシアルをご紹介にあがらせていただきます m(__)m&lt;br /&gt;
&lt;br /&gt;
&lt;object width=&quot;400&quot; height=&quot;340&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/lsVfnzuOLv8?fs=1&amp;amp;hl=ja_JP&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/lsVfnzuOLv8?fs=1&amp;amp;hl=ja_JP&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;400&quot; height=&quot;340&quot;&gt;&lt;/embed&gt;&lt;/object&gt; </description>
						<guid>http://blog.asial.co.jp/739</guid>
			<pubDate>Thu, 19 Aug 2010 19:17:30 +0900</pubDate>
			<category>日常</category>
		</item>
				<item>
			<title>iPhoneアプリ開発開始時に気をつけるべきファイルの取り扱い (2)</title>
						<link>http://blog.asial.co.jp/738</link>
						<description> こんにちは、亀本です。&lt;br /&gt;
&lt;br /&gt;
今回も、&lt;a href=&quot;http://blog.asial.co.jp/732&quot;&gt;1回目&lt;/a&gt;に続いて、iPhoneアプリ申請まわりの、各種ファイルの取り扱いについての話の続きを書いていきたいと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;必要なファイル群&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
まず、前回も紹介したファイル群を改めて列挙しておきます。&lt;br /&gt;
&lt;br /&gt;
・ 秘密鍵&lt;br /&gt;
--&gt; hoge.p12&lt;br /&gt;
・ 秘密鍵に対応したCSR(証明書要求)&lt;br /&gt;
--&gt; CertificateSigningRequest.certSigningRequest&lt;br /&gt;
・ CSRに対応した証明書(開発用)&lt;br /&gt;
--&gt; development_identity.cer&lt;br /&gt;
・ CSRに対応した証明書(申請用)&lt;br /&gt;
--&gt; distribution_identity.cer&lt;br /&gt;
・ 中間証明書&lt;br /&gt;
--&gt; AppleWWDRCA.cer&lt;br /&gt;
・ デバイスID&lt;br /&gt;
--&gt; iPhone実機から取得&lt;br /&gt;
・ AppID&lt;br /&gt;
--&gt; 任意に設定&lt;br /&gt;
・ development用Provisioning Profile&lt;br /&gt;
--&gt; hoge.mobileprovisioning&lt;br /&gt;
・ destribution用Provisioning Profile&lt;br /&gt;
--&gt; hoge.mobileprovisioning&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
前回は、このうち秘密鍵とCSRの取り扱いについて紹介しました。&lt;br /&gt;
今回は、各種証明書と、デバイスID、App IDの運用時、作成時などのポイントを紹介して行きます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;証明書の有効期限に気をつけよう&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
iPhoneの開発・申請の際には、3種類の証明書が絡んできます。&lt;br /&gt;
&lt;br /&gt;
・ CSRに対応した証明書(開発用)&lt;br /&gt;
・ CSRに対応した証明書(申請用)&lt;br /&gt;
・ 中間証明書&lt;br /&gt;
&lt;br /&gt;
の3種類です。&lt;br /&gt;
開発用の証明書と申請用の証明書は、その名の通りです。&lt;br /&gt;
また、中間証明書は、AppleのProvisioning Portalで発行されている物になります。&lt;br /&gt;
&lt;br /&gt;
これらについては、あまり運用の際に深く注意すべき事はありません。&lt;br /&gt;
証明書の有効期間中は、何度でもダウンロードしてこれるので、きちんと対応する秘密鍵やCSRが保持されていれば、&lt;br /&gt;
特に証明書側をペアで保存しておく、などの配慮はいりません。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ただし、開発用と申請用の証明書には有効期限があり、期間が切れたら再度CSRを使った証明書要求が必要になることだけ、&lt;br /&gt;
気をつけておく必要があります。&lt;br /&gt;
証明書の有効期限は、Provisioning Portalでも、ローカルのキーチェーンアクセスでも、どちらでも閲覧可能なので、&lt;br /&gt;
これは、きちんとチェックしておきましょう。&lt;br /&gt;
&lt;br /&gt;
しかも、証明書の有効期限が若干のはまりどころになることもあります。&lt;br /&gt;
&lt;br /&gt;
一度自分がひっかっかったのが、ちょうど期限切れ当日に証明書の期限が切れている事に気づきいて証明書を&lt;br /&gt;
再度発行しようとしたところ、アメリカとの時差により、Appleのサイト側ではまだ期限切れ扱いになっておらず、&lt;br /&gt;
しばらくの間ローカルでのみ期限切れ扱い、というおかしな齟齬が生まれた事がありました。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
証明書が期限切れになると、当然のことながら、アプリの申請ができなくなってしまいます。&lt;br /&gt;
アプリのリリースの時期などとかぶってしまわないように、気をつけましょう。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;デバイスID につける名前は、分類しやすい区切りをつけよう&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
分類しやすい区切りって意味わかんない日本語ですね。&lt;br /&gt;
&lt;br /&gt;
デバイスIDとは各実機ごとの端末識別子のことで、これをProvisioning Portalから登録することによって、&lt;br /&gt;
実機でのテストが可能になります。&lt;br /&gt;
&lt;br /&gt;
表題の話は、つまるところ、デバイスIDをProvisioning Portal登録する際につける名前に、会社名とか部署名とか、&lt;br /&gt;
そういう類の接頭辞をつけておくと管理しやすいよ、と言う話です。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iPhoneの開発を会社単位でやっていると、実開発者以外にとてもいろいろな人に実機テストやアプリの確認を&lt;br /&gt;
おこなってもらう事になります。&lt;br /&gt;
開発者自身から始まって、テスター、マネージャ、顧客などなど。もっと複雑なプロジェクトチームになっている場合も&lt;br /&gt;
あります。&lt;br /&gt;
&lt;br /&gt;
そういった作業を行っていると、どのデバイスIDが誰の物か、という事がきちんと視認できるように名前をつけておかないと、&lt;br /&gt;
本来そのプロジェクトに関わりのない人の端末にもインストールできるようにしてしまったり、同じような名前をつけてしまって&lt;br /&gt;
どれがインストールしたいデバイスだかわからない、などの事態に陥ります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
そのため、ある程度管理する数が増えてくるようなら、明確にどこの誰の物かがわかりやすいように、&lt;br /&gt;
所属する会社名、部署名などを接頭辞につけて、適切なグループ分けを行うようにすると、運用が楽になります。&lt;br /&gt;
&lt;br /&gt;
また、iPhone3Gなのか4なのか、iPod Touchなのか、iPadなのか、など、端末の種類も一緒にわかるようにしておくと、一層便利です。&lt;br /&gt;
&lt;br /&gt;
たとえば、「Asial Yudoufu iPhone4」とかです。(実際はちょっと違う名前つけてますけど。)&lt;br /&gt;
&lt;br /&gt;
このあたりに心を配っておくと、後々わかりやすく、管理しやすくなると思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;App ID は、アスタリスク(*)を忘れずに。&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Provisioning Portalでの申請時に、「何これ？」となりやすいのがApp IDです。&lt;br /&gt;
App IDは複数作る事は可能ですが、削除が不可能なので失敗してゴミを残すと後々気分が悪いので、ちょっと気を配って作ってあげましょう。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iPhoneのアプリケーションは、バンドルと呼ばれるまとまりごとに分類して管理されるのですが、そのバンドルの&lt;br /&gt;
識別子となるのが、App IDです。&lt;br /&gt;
このApp ID で指定した値を、iPhoneアプリの申請用ビルドを行う際に、アプリのinfo.plist内で識別子(Bundle Identifier)に&lt;br /&gt;
指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
この識別子には、URLドメインを逆さまにした記述を利用することが推奨されており、たとえばアシアルで&lt;br /&gt;
Fooというアプリケーションをリリースする場合であれば、「jp.co.asial.foo」という値を使うような感じになります。&lt;br /&gt;
&lt;br /&gt;
なので、アプリの申請時には1度はお世話になるIDなのです。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ただし、このApp ID、一度値を指定してしまうと、変更がききませんし、識別子なので同じ値を2度使うこともできません。&lt;br /&gt;
となると、アプリを申請するごとに１つApp IDを作って。。。という手間が発生してしまいます。&lt;br /&gt;
&lt;br /&gt;
App IDが分かれると、ビルド時に使うProvisioning Profileも別に用意せねばならず、同一の会社から複数の&lt;br /&gt;
アプリをリリースする場合には、とても管理が煩雑になります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
しかし、その手間を簡素化するために、App IDにはワイルドカードとして&quot; * &quot; (アスタリスク)を利用できるようになっています。&lt;br /&gt;
たとえば、アシアルであれば「jp.co.asial.*」といった具合でしょうか。&lt;br /&gt;
&lt;br /&gt;
これを使うことで、「jp.co.asial.xxxx」という識別子のついたアプリケーションは、すべて1つのApp IDを使うことができ、&lt;br /&gt;
それはすなわち、すべてのアプリケーションを1つのProvisioning Profileで管理できることを意味します。&lt;br /&gt;
&lt;br /&gt;
もちろん、アプリケーション個別にはきちんと一意なIDをつけてやる必要はありますが、&lt;br /&gt;
FooというアプリとBarというアプリ、それぞれに「jp.co.asial.foo」「jp.co.asial.bar」識別子を指定したとしても、&lt;br /&gt;
これらに個別にApp ID作る必要はなく、上記のアスタリスク付きのApp IDを使い回すことができます。&lt;br /&gt;
&lt;br /&gt;
そのため、ある程度いろいろなアプリをリリースしていこうと考えている場合には、上記のようにアスタリスクを&lt;br /&gt;
つけたApp ID に、会社名などの汎用的な名前(「Asial App ID」など)をつけて管理してやると、運用がすっきりすると思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; おわりに &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
今回は、各種証明書と、デバイスID、App IDの作成時、運用時のちょっとした心配りや注意点を紹介しました。&lt;br /&gt;
&lt;br /&gt;
次回以降も引き続き、各種申請用ファイル群の注意点などについて、紹介していく予定です。 </description>
						<guid>http://blog.asial.co.jp/738</guid>
			<pubDate>Thu, 19 Aug 2010 01:07:55 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>symfonyセミナー動画無料公開！</title>
						<link>http://blog.asial.co.jp/737</link>
						<description> こんにちはアシアル・アピール担当の岡本雄樹です&lt;br /&gt;
&lt;br /&gt;
最近、弊社の優秀なアルバイトが&lt;br /&gt;
私の席の後ろでsymfonyと格闘しているようです。&lt;br /&gt;
&lt;br /&gt;
クラスの概念から勉強中なので苦労しているようですが、&lt;br /&gt;
親切な先輩社員が１から１０まで教え込んでいるので、&lt;br /&gt;
将来が楽しみです。&lt;br /&gt;
&lt;br /&gt;
symfonyと言えば、&lt;br /&gt;
先月開催した弊社テクニカルセミナー&lt;br /&gt;
「PHP×symfony」編の動画を、&lt;br /&gt;
今回特別に公開する運びとなりました。&lt;br /&gt;
&lt;br /&gt;
しかも、テクニカルセミナーにご参加いただいた&lt;br /&gt;
「ロジックデザイン」様からの御厚意により、&lt;br /&gt;
ただの動画ではなく、スライドと講師を同時に閲覧できる&lt;br /&gt;
Ｅラーニング形式で動画を公開することができました。&lt;br /&gt;
&lt;br /&gt;
この場を借りて、お礼申し上げます。&lt;br /&gt;
&lt;br /&gt;
動画は下記リンクを辿り、&lt;br /&gt;
「特別公開中」ボタンをクリックして下さい。&lt;br /&gt;
&lt;a href=&quot;https://www.asial.co.jp/seminar/&quot;&gt;アシアル・テクニカルセミナー&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
尚、アシアルでは、現在、全5回にわけて&lt;br /&gt;
「開発者向け、一歩先を行くためのテクニカルセミナー」&lt;br /&gt;
を開催しています。&lt;br /&gt;
&lt;br /&gt;
８月２５日には「PHP×Flex（前編）」と銘打ちまして、&lt;br /&gt;
ActionScript3.0でインタラクティブなWeb開発を行う、&lt;br /&gt;
ノウハウをセミナーでご提供致します。&lt;br /&gt;
皆様お誘い合わせのうえ、ご参加下さいませ。&lt;br /&gt;
&lt;br /&gt;
お申し込みページへは、以下のバナーよりお進み下さい。&lt;br /&gt;
&lt;a href=&quot;http://www.asial.co.jp/seminar/&quot;&gt;&lt;a href=&quot;http://www.asial.co.jp/images/top/top-image-seminar.jpg&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://www.asial.co.jp/images/top/top-image-seminar.jpg&quot; width=&quot;480&quot; /&gt;&lt;/a&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
また、講演者の&lt;a href=&quot;http://blog.asial.co.jp/user/4&quot;&gt;松田　惇&lt;/a&gt;のブログでも、&lt;br /&gt;
Flexネタで記事を書かせて頂いております。&lt;br /&gt;
宜しければご参照ください。&lt;br /&gt;
&lt;br /&gt;
【開催概要】&lt;br /&gt;
&lt;br /&gt;
日程： 8月25日(水） 10:00 ～ 12:00（※ 開始30分前より入室可能）&lt;br /&gt;
会場： 山王健保会館2F 多目的ホール&lt;br /&gt;
交通： 地下鉄銀座線・南北線：溜池山王駅 7出口　徒歩3分&lt;br /&gt;
　　　 地下鉄千代田線：赤坂駅 1出口　徒歩5分&lt;br /&gt;
　　　 地下鉄銀座線・丸ノ内線：赤坂見附駅出口　下車徒歩7分&lt;br /&gt;
主催： アシアル株式会社&lt;br /&gt;
受講対象者： Webシステムにおいて1～3年の開発経験のある方&lt;br /&gt;
定員： 100名（※ 定員となり次第、受付を終了させていただきます 。）&lt;br /&gt;
参加費： 無料（事前登録制）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【第3回　PHP×Flex（前編）】ActionScript3.0でインタラクティブなWeb開発&lt;br /&gt;
&lt;br /&gt;
&lt;h5&gt;ActionScript3.0でインタラクティブなWeb開発&lt;/h5&gt;&lt;br /&gt;
								&lt;p&gt;近年、様々なFlashコンテンツがWebサイトの要となっています。これらのFlashコンテンツの元となるのがActionScriptであります。最近ではFlexやAIRなどのRIAアプリケーションにも使用され、ActionScriptの重要性はますます高まってきています。&lt;/p&gt;&lt;br /&gt;
                &lt;p&gt;この講演では、Flexアプリケーションの基礎となるActionScript3.0の基本構文から簡単なFlashの作成まで実際のスクリプトを追いながら解説していきます。&lt;/p&gt;&lt;br /&gt;
                &lt;p style=&quot;font-size: smaller; text-indent: -1.8em ! important; margin: 1em 0pt 1em 1.8em ! important; line-height: 1.4em;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;※ PHP×Flex編は前後編の2回構成です。&lt;/span&gt;&lt;br&gt;前編ではActionScript3.0の基礎を学び、後編ではFlexとPHPを連携したFlexアプリケーションの作成方法を解説します。まずはこの前編でActionScript3.0の基礎をしっかりと学びましょう。&lt;/p&gt;&lt;br /&gt;
								&lt;dl&gt;&lt;br /&gt;
									&lt;dt&gt;講演者：アシアル株式会社　松田　惇（マツダ　アツシ）&lt;/dt&gt;&lt;br /&gt;
									&lt;dd&gt;アシアル株式会社のPHPプログラマー兼Flexプログラマー&lt;br&gt;&lt;br /&gt;
											JavaScriptやAjaxを生かした、動的にインターフェースが変化するシステムが好きなことからFlashアプリケーションに興味を持ちはじめ、趣味でFlexを勉強するようになる。そのことがきっかけで、現在ではFlexアプリケーションの構築も担当している。&lt;br /&gt;
                  &lt;/dd&gt;&lt;br /&gt;
								&lt;/dl&gt; </description>
						<guid>http://blog.asial.co.jp/737</guid>
			<pubDate>Fri, 13 Aug 2010 21:29:53 +0900</pubDate>
			<category>日常</category>
		</item>
				<item>
			<title>アシアルでtwitter始めます(前編)</title>
						<link>http://blog.asial.co.jp/736</link>
						<description> こんにちは、岡本雄樹です。&lt;br /&gt;
&lt;br /&gt;
突然ですが、アシアルでtwitterを始めようという話が持ち上がっております。&lt;br /&gt;
今までも、何回かそんな話があったのですが、&lt;br /&gt;
今回はホンキのようです。&lt;br /&gt;
&lt;br /&gt;
と、ここまでは他人事だったのですが、&lt;br /&gt;
つい一昨日、アシアルのアピール担当に任命されてしまい、&lt;br /&gt;
他人事ではなくなってしまいました！&lt;br /&gt;
&lt;br /&gt;
「じゃぁ、試しにやりましょう！」&lt;br /&gt;
&lt;br /&gt;
とは言ったものの、お盆休みも取れない忙しい身で、&lt;br /&gt;
本当にやれるのだろうか・・・&lt;br /&gt;
&lt;br /&gt;
「そうだ！ボットを作って更新させよう。」&lt;br /&gt;
&lt;br /&gt;
ボットを作れば、ブログのネタにもできるし一石二鳥。&lt;br /&gt;
そんなわけで、ボット作成一人プロジェクトが発足しました。&lt;br /&gt;
ちょっとした夏休みの宿題感覚でお付き合いいただければと思います。&lt;br /&gt;
&lt;br /&gt;
「夏休みなんて無いけど！」&lt;br /&gt;
&lt;br /&gt;
■ボットの仕様&lt;br /&gt;
・アシアルブログ等の更新情報を元に、ツィートを行う。&lt;br /&gt;
更新情報はRSS（RSS2.0）を利用する。&lt;br /&gt;
・ネタに使うRSSは複数登録可能とする&lt;br /&gt;
・更新の確認頻度は１分で検討（負荷を見て調整）&lt;br /&gt;
・管理画面は設けない&lt;br /&gt;
&lt;br /&gt;
■詳細設計&lt;br /&gt;
・設置のしやすさをを考慮し、&lt;br /&gt;
twitterAPI用のライブラリ以外は極力使わない&lt;br /&gt;
・フレームワークも使わない。&lt;br /&gt;
・データベースはSQLiteを検討&lt;br /&gt;
&lt;br /&gt;
■設計図&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1218&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1218&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
■ＤＢスキーマ&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1217&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1217&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol class=&quot;boxcode-main&quot;&gt;&lt;li&gt;CREATE&lt;wbr /&gt;&amp;nbsp;TABLE&lt;wbr /&gt;&amp;nbsp;rss&lt;/li&gt;&lt;li&gt;(&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;title&lt;wbr /&gt;&amp;nbsp;TEXT&lt;wbr /&gt;&amp;nbsp;NOT&lt;wbr /&gt;&amp;nbsp;NULL&lt;wbr /&gt;&amp;nbsp;,&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;link&lt;wbr /&gt;&amp;nbsp;TEXT&lt;wbr /&gt;&amp;nbsp;NOT&lt;wbr /&gt;&amp;nbsp;NULL&lt;wbr /&gt;&amp;nbsp;PRIMARY&lt;wbr /&gt;&amp;nbsp;KEY,&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;tweeted_flag&lt;wbr /&gt;&amp;nbsp;INTEGER&lt;wbr /&gt;&amp;nbsp;NOT&lt;wbr /&gt;&amp;nbsp;NULL&lt;wbr /&gt;&amp;nbsp;DEFAULT&lt;wbr /&gt;&amp;nbsp;0&lt;/li&gt;&lt;li&gt;);&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
■プログラムのプロトタイプ&lt;br /&gt;
プロトタイプなのでエラー処理等は付属していません。&lt;br /&gt;
コピペされる方は自己責任でお願いいたします。&lt;br /&gt;
&lt;br /&gt;
RSSを取得してSQLiteデータベースに格納する&lt;br /&gt;
（プログラムＡ）&lt;br /&gt;
&lt;ol class=&quot;php-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;php-inlinetags&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;RSSフィードの一覧&lt;wbr /&gt;&amp;nbsp;テキストファイルかDBに持たせたい。&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$rss_paths&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;http://blog.asial.co.jp/rss/rss2.0.php&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$rss_paths&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;http://www.asial.co.jp/oshirase_feed.php&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$rss_paths&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;http://www.asial.co.jp/pressrelease/feed.php&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$link&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;sqlite_open&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;rss.db&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;RSSフィードの本数だけループ回す&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-reserved&quot;&gt;foreach&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$rss_paths&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-reserved&quot;&gt;as&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$rss_path&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;simplexml_load_file関数は外部サーバのコンテンツも取得できる。&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$feed&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;simplexml_load_file&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$rss_path&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;生成したfeedオブジェクトを元にさらにループ処理して記事の概要取得&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-reserved&quot;&gt;foreach&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$feed&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;channel&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-reserved&quot;&gt;as&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$item&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;とりあえず、タイトルとURLをDBに格納&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$escaped_title&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;sqlite_escape_string&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$item&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$escaped_link&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;sqlite_escape_string&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$item&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;link&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$query&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;INSERT&lt;wbr /&gt;&amp;nbsp;INTO&lt;wbr /&gt;&amp;nbsp;rss&lt;wbr /&gt;&amp;nbsp;(title,&lt;wbr /&gt;&amp;nbsp;link,&lt;wbr /&gt;&amp;nbsp;tweeted_flag)&lt;wbr /&gt;&amp;nbsp;VALUES&lt;wbr /&gt;&amp;nbsp;(&#039;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$title&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;&#039;,&lt;wbr /&gt;&amp;nbsp;&#039;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$link&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;&#039;,&lt;wbr /&gt;&amp;nbsp;0)&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;sqlite_query&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$link&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$query&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
データベースから未投稿の情報を取得する&lt;br /&gt;
（プログラムＢ）&lt;br /&gt;
&lt;ol class=&quot;php-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;php-inlinetags&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$link&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;sqlite_open&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;rss.db&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;twitterに投稿していない記事のみ取得&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$query&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;SELECT&lt;wbr /&gt;&amp;nbsp;*&lt;wbr /&gt;&amp;nbsp;FROM&lt;wbr /&gt;&amp;nbsp;rss&lt;wbr /&gt;&amp;nbsp;WHERE&lt;wbr /&gt;&amp;nbsp;tweeted_flag&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;0&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;sqlite_unbuffered_query&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$link&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;,&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$query&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$rss&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;sqlite_fetch_all&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;とりあえずDBから値を取得できることを確認&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;var_dump&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$rss&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
とりあえず、RSSを取得して&lt;br /&gt;
データベースに格納するところまではできました。&lt;br /&gt;
次回はプログラムのりファクタリングと、&lt;br /&gt;
twitterへの投稿を行いたいと思います。&lt;br /&gt;
&lt;br /&gt;
また、twitterのアカウントも仮で取得しました。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&#039;http://twitter.com/asialnews&#039;&gt;http://twitter.com/asialnews&lt;/a&gt;&lt;br /&gt;
「アシアルニュース」&lt;br /&gt;
&lt;br /&gt;
お気軽にフォローくださいませ。&lt;br /&gt;
（ただし、フォロー返しやコメント返しは行わない方向で検討中）&lt;br /&gt;
&lt;br /&gt;
尚、弊社のＰＨＰスクールでも、&lt;br /&gt;
&lt;a href=&quot;https://www.asial.co.jp/school/course_detail/12&quot;&gt;WebAPI講座でtwitterへの投稿演習を行っております。&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
ご興味のある方は、是非お申込み下さいませ。&lt;br /&gt;
&lt;br /&gt;
アシアル・アピール担当兼スクール担当兼エンジニアの、&lt;br /&gt;
岡本からのお願いでした。 </description>
						<guid>http://blog.asial.co.jp/736</guid>
			<pubDate>Thu, 12 Aug 2010 16:32:32 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>お弁当</title>
						<link>http://blog.asial.co.jp/735</link>
						<description> こんにちは。笹亀です。&lt;br /&gt;
&lt;br /&gt;
毎日、暑くて寝苦しい生活が続いてますね。&lt;br /&gt;
北海道でも35度を超える猛暑日になるとは、&lt;br /&gt;
日本が悲鳴をあげているのを感じます。&lt;br /&gt;
&lt;br /&gt;
今日はいつも日頃お世話になっている、お気に入りお弁当をご紹介します。&lt;br /&gt;
アシアルは本郷三丁目から出たことがありません！&lt;br /&gt;
本郷で長いことお世話になっているお弁当屋さんがあります。&lt;br /&gt;
そのお弁当屋さんは「はらどけい」というお弁当屋さんです。&lt;br /&gt;
&lt;br /&gt;
とても美味しく、安さとボリューム満点なお弁当をいただいております。&lt;br /&gt;
&lt;br /&gt;
何でも美味しいのですが、最近とてもお気に入りのお弁当がこれです。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1214&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1214&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
その名も「海苔唐揚げ明太子弁当」これがうまい！うますぎてハマッてますｗ&lt;br /&gt;
&lt;br /&gt;
スパイシーチキンにも負けませんよ〜&lt;br /&gt;
&lt;a href=&#039;http://blog.asial.co.jp/161&#039;&gt;http://blog.asial.co.jp/161&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
別のお店ですが、この前ビックリなことがありました。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1215&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1215&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
確かにツナマヨと記載されているのですが、&lt;br /&gt;
勢いよくがぶりついたら中身が梅干でしたｗ&lt;br /&gt;
しかも自分は梅干が苦手というのでダブルパンチでした。&lt;br /&gt;
　※あとでお店でいつもより大きいので作り変えてもらいましたｗ&lt;br /&gt;
&lt;br /&gt;
おいしいごはんはエンジニアの活力ですね！ </description>
						<guid>http://blog.asial.co.jp/735</guid>
			<pubDate>Sat, 07 Aug 2010 00:28:53 +0900</pubDate>
			<category>日常</category>
		</item>
				<item>
			<title>なつやすみ</title>
						<link>http://blog.asial.co.jp/734</link>
						<description> こんにちは。阿部です。&lt;br /&gt;
&lt;br /&gt;
夏ですね。猛暑ですね。&lt;br /&gt;
テラスのおじぎそうが枯れた今、未練はありません。実家に帰ります。&lt;br /&gt;
&lt;br /&gt;
アシアルは、お盆に帰省する人は少数派なのですが、私は毎年お盆に帰省しています。&lt;br /&gt;
毎年、家族で海に行くのが恒例行事です。&lt;br /&gt;
&lt;br /&gt;
今年も、今日夜行バスで帰省して、明日は朝から海だーー！！！と思っていたのに、、母が熱中症でぴーぽーぴーぽー運ばれたそうで。。&lt;br /&gt;
一晩泊まって帰るそうですが、もちろん海は延期になりました。。今年はいけないかも（;_;）&lt;br /&gt;
&lt;br /&gt;
今年は各地で猛暑日が続いていますし、みなさんもお気をつけくださいね。&lt;br /&gt;
&lt;br /&gt;
熱中症かも･･･と思ったら、まず涼しい場所への移動（体を冷やす）と水分補給が大切だそうです。少量の塩分も必要なんだとか。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
実家に帰ってもやることなくなりましたが、とりあえずチケットはとってしまったので帰ります＞＜&lt;br /&gt;
お土産買ってない＞＜ </description>
						<guid>http://blog.asial.co.jp/734</guid>
			<pubDate>Fri, 06 Aug 2010 20:33:33 +0900</pubDate>
			<category>日常</category>
		</item>
				<item>
			<title>手軽に出来るApacheモジュール開発②</title>
						<link>http://blog.asial.co.jp/733</link>
						<description> こんにちは、井川です。&lt;br /&gt;
&lt;br /&gt;
前回、Apacheモジュールの手軽な作り方をご紹介しました。Webページに先頭に&quot;hello world&quot;を追加するモジュール（mod_hello_world）は意外と簡単に作成できたことと思います。今回は、モジュール開発を一歩進め、モジュールのOn/Offをディレクトリ毎に設定する方法をご紹介します。&lt;br /&gt;
&lt;br /&gt;
いささか複雑にはなりますが、モジュール起動の切り替えを使えるようになると開発の幅が大きく広がります。ぜひ試してみて下さい。&lt;br /&gt;
&lt;br /&gt;
今回は、前回の記事（&lt;a href=&quot;http://blog.asial.co.jp/715&quot;&gt;手軽に出来るApacheモジュール開発&lt;/a&gt;）で作成したソースコードを基に次のように開発を進めます。&lt;br /&gt;
&lt;br /&gt;
① コード（mod_hello_world.c）の修正・追記&lt;br /&gt;
② コンパイルしてインストール&lt;br /&gt;
③ httpd.confの再設定と再起動&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;① コードの修正・追記&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
前回作成したコード（mod_hello_world.c）を次のように修正・追記します。&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;c&quot; style=&quot;font-family:monospace; font-size: small;&quot;&gt;&lt;ol style=&quot;margin-left:2em;&quot;&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*  mod_hello_world.c -- Apache sample hello_world module&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;#include &amp;quot;httpd.h&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;#include &amp;quot;http_config.h&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;#include &amp;quot;http_protocol.h&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;#include &amp;quot;ap_config.h&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;#define DEFAULT_AVAILABLE 0&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* モジュールの設定に関する部分&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* モジュールを定義する構造体 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #993333;&quot;&gt;typedef&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;struct&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  &lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; is_available&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt; hello_world_cfg&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;module AP_MODULE_DECLARE_DATA hello_world_module&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* ディレクトリ設定データを初期化する */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;create_dir_config&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;apr_pool_t &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;p&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;char&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;dir&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  hello_world_cfg &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;conf &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;hello_world_cfg &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;apr_palloc&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;p&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;sizeof&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;hello_world_cfg&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  conf&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;is_available &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; DEFAULT_AVAILABLE&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; conf&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* ディレクティブに値を設定する */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;const&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;char&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;set_available&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;cmd_parms &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;cmd&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;cfg&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; flag&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  hello_world_cfg &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;conf &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;hello_world_cfg &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;cfg&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  conf&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;is_available &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; flag&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; NULL&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* ディレクティブを定義する */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;const&lt;/span&gt; command_rec hello_world_cmds&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  AP_INIT_FLAG&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;HelloWorld&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; set_available&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; NULL&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; OR_ALL&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Use or not&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;NULL&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;* モジュールの機能・登録に関する部分&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;nbsp;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* ハンドラを作成する */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; hello_world_handler&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;request_rec &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;r&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  hello_world_cfg &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;conf &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;hello_world_cfg &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;      ap_get_module_config&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;r&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;per_dir_config&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;&amp;amp;&lt;/span&gt;hello_world_module&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;conf&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;is_available &lt;span style=&quot;color: #339933;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;!&lt;/span&gt;r&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;header_only&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;    ap_rputs&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;hello world&amp;lt;br /&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; r&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; DECLINED&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* ハンドラを登録する */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; hello_world_register_hooks&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;apr_pool_t &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt;p&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  ap_hook_handler&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;hello_world_handler&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; NULL&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; NULL&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; APR_HOOK_MIDDLE&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* モジュールに登録する */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;module AP_MODULE_DECLARE_DATA hello_world_module &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  STANDARD20_MODULE_STUFF&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  create_dir_config&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;     &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* create per-dir    config structures */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  NULL&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;                  &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* merge  per-dir    config structures */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  NULL&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;                  &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* create per-server config structures */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  NULL&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;                  &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* merge  per-server config structures */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  hello_world_cmds&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;      &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* table of config file commands       */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;  hello_world_register_hooks  &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* register hooks                 */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #f0f0f0;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;background: #fcfcfc;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
このコードでは、Apacheのディレクティブ（HelloWorld）を定義・設定し、その設定をモジュールに渡すことで、ディレクトリ毎にモジュールの起動を切り替えます。そこで、このコードを次のように大きく２つに分けると理解しやすいと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;a)&lt;i&gt;モジュールの設定に関する部分&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
・ モジュールの設定を表す構造体を定義する（16行目）&lt;br /&gt;
 　→ この構造体にモジュールのOn/Offの設定を格納する&lt;br /&gt;
&lt;br /&gt;
・ ディレクトリ毎に構造体を初期化する関数を定義する（23行目）&lt;br /&gt;
&lt;br /&gt;
・ ディレクティブを定義する（40行目）&lt;br /&gt;
　 → HelloWorldディレクティブを定義（httpd.confに記述可能）&lt;br /&gt;
　 → AP_INIT_FLAGはOn/Offのみの設定を行うマクロ&lt;br /&gt;
&lt;br /&gt;
・ ディレクティブを受け取って構造体に設定する関数を定義する（33行目）&lt;br /&gt;
　 → ディレクトリ毎の設定を読み込む&lt;br /&gt;
　 → この関数はAP_INIT_FLAGにより登録される&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;b)&lt;i&gt;モジュールの機能・登録に関する部分&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
・ モジュールの機能を実装したハンドラを修正する（49行目）&lt;br /&gt;
　 → 構造体からモジュールのOn/Offを受け取って挙動を決める&lt;br /&gt;
&lt;br /&gt;
・ ハンドラを登録する（62行目）&lt;br /&gt;
&lt;br /&gt;
・ 各設定・機能をモジュールに設定する（67行目）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ここでは&quot;HelloWorld&quot;というディレクティブを定義し、httpd.confで&quot;HelloWorld&quot;が&quot;On&quot;に設定されているディレクトリやLocationのみmod_hello_worldが有効になります。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;②コンパイルとインストール&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
前回と同様に、コンパイルしてインストールします。&lt;br /&gt;
&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;[コンパイルとインストールを同時に実行]&lt;/li&gt;&lt;li&gt;&gt;&lt;wbr /&gt;&amp;nbsp;/usr/sbin/apxs&lt;wbr /&gt;&amp;nbsp;-i&lt;wbr /&gt;&amp;nbsp;-a&lt;wbr /&gt;&amp;nbsp;-c&lt;wbr /&gt;&amp;nbsp;mod_hello_world.c&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
&lt;b&gt;③httpdの再設定と再起動&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
ドキュメントルート以下にtestディレクトリを作成し、httpd.confでディレクティブを次のように設定します。&lt;br /&gt;
&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;&amp;lt;Location&lt;wbr /&gt;&amp;nbsp;&quot;/test&quot;&amp;gt;&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;HelloWorld&lt;wbr /&gt;&amp;nbsp;on&lt;/li&gt;&lt;li&gt;&amp;lt;/Location&amp;gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
VirtualHostを使っているなら、この設定をVirtualHost内に記述して下さい。最後に、Apacheを再起動して下さい。&lt;br /&gt;
&lt;br /&gt;
&lt;ol class=&quot;boxcode-main no-number&quot;&gt;&lt;li&gt;/sbin/service&lt;wbr /&gt;&amp;nbsp;httpd&lt;wbr /&gt;&amp;nbsp;restart&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
これで準備は終わりました。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/testディレクトリにアクセスしてみて下さい。ページの先頭に&quot;hello world&quot;が付いているでしょうか？一方で、testディレクトリ以外の部分にアクセスすると、通常のページがきちんと表示されていれば成功です（先頭に&quot;hello world&quot;がなければＯＫ）。&lt;br /&gt;
&lt;br /&gt;
ディレクトリ毎の設定を行えるようになると、特定のディレクトリへのアクセスに関しては特別な処理を行うことなどが出来るようになります。実用上も必要不可欠な技術ですので、ぜひ実際に試してみて下さい。 </description>
						<guid>http://blog.asial.co.jp/733</guid>
			<pubDate>Wed, 04 Aug 2010 23:49:35 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>iPhoneアプリ開発開始時に気をつけるべきファイルの取り扱い (1)</title>
						<link>http://blog.asial.co.jp/732</link>
						<description> こんにちは、亀本です。&lt;br /&gt;
&lt;br /&gt;
今回から何回かに分けて、iPhoneの申請まわりの事に関するファイルの取り扱いノウハウを書いてみたいと思います。&lt;br /&gt;
&lt;br /&gt;
ここでのファイルの取り扱い方の紹介方法は、ファイル一つ一つについて個別に言及するようなまとめ方はしません。&lt;br /&gt;
代わりに、そのファイルを作成・利用するタイミングを切り口として紹介し、その際にファイルをどう取り扱うべきかを、その理由とともに説明していきます。&lt;br /&gt;
&lt;br /&gt;
(※なお、あくまでも個人的に感じたノウハウであって、必須事項ではありません。)&lt;br /&gt;
&lt;br /&gt;
１回目は、まず触れるべきファイルの説明と、一番最初のCSR発行時に気をつけておくことを紹介します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; はじめに &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
iPhoneの開発を始めようとすると、最初にCSRやらProvisioning Profileやら、いまいちパッとつかみづらい概念が出てきます。&lt;br /&gt;
このあたりのよくわからない事、けっこう悩まされてしまいますよね。&lt;br /&gt;
&lt;br /&gt;
とはいえ、最初始めるときはまだいいのです。&lt;br /&gt;
何しろ、Appleのサイト側にあれをやれ、これをやれ、という手順が載っているし、検索するといろんなところに開始手順についての解説が出てきます。&lt;br /&gt;
そういう意味で、ある程度頑張れば、「手順通り」でちゃんと整います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
しかし、それだけで事が済めば、苦労はしません。&lt;br /&gt;
だいたいが、そうやってよくわからないまま、「とりあえず」で整えてしまった環境が、ごちゃごちゃになってしまって、管理がとてもやりづらくなってしまうのです。&lt;br /&gt;
&lt;br /&gt;
特に問題になるのは&lt;br /&gt;
&lt;br /&gt;
・ 一定期間以上たって、証明書の有効期限が切れた場合&lt;br /&gt;
・ チーム開発を行うために、新しいマシンで開発を行う場合&lt;br /&gt;
      -&gt; 同じく、新しい環境に移行する場合&lt;br /&gt;
&lt;br /&gt;
これらについて、自分がしばらくチーム開発や申請などを繰り返してきて、申請や開発に必要なファイル群をどう扱うべきか、ある程度ベストプラクティスが見えてきたので、書き残しておくことにしました。&lt;br /&gt;
&lt;br /&gt;
開発開始時、どのファイルをどう扱っておけばいいか、などが全く分からない、という状態になってしまうようなら、以下のポリシーにしたがってファイルを扱っておけば、まずまず困ることはないと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
なお、話が冗長になるので、ここではファイルの個別の作成方法には触れません。&lt;br /&gt;
作成するときに必要な注意点のみを述べることにします。&lt;br /&gt;
ファイルの作成方法については、AppleのProvisioning Portalにある解説などを参考にしてください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; 必要なファイル群 &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
まず、開発、申請に使うファイルや情報を列挙しておきます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
・ 秘密鍵&lt;br /&gt;
     --&gt; hoge.p12&lt;br /&gt;
・ 秘密鍵に対応したCSR(証明書要求)&lt;br /&gt;
     --&gt; CertificateSigningRequest.certSigningRequest&lt;br /&gt;
・ CSRに対応した証明書(開発用)&lt;br /&gt;
     --&gt; development_identity.cer&lt;br /&gt;
・ CSRに対応した証明書(申請用)&lt;br /&gt;
     --&gt; distribution_identity.cer&lt;br /&gt;
・ 中間証明書&lt;br /&gt;
     --&gt; AppleWWDRCA.cer&lt;br /&gt;
・ デバイスID&lt;br /&gt;
     --&gt; iPhone実機から取得&lt;br /&gt;
・ AppID&lt;br /&gt;
     --&gt; 任意に設定&lt;br /&gt;
・ development用Provisioning Profile&lt;br /&gt;
     --&gt; hoge.mobileprovisioning&lt;br /&gt;
・ destribution用Provisioning Profile&lt;br /&gt;
     --&gt; hoge.mobileprovisioning&lt;br /&gt;
&lt;br /&gt;
最初から最後まで、必要になるファイル/情報は、とにかくこれだけです。&lt;br /&gt;
開発のみ、申請のみ、など、立場によって関わるファイルは異なってきますが、すべてを一貫して扱う場合には、この９概念しか出てきません。&lt;br /&gt;
&lt;br /&gt;
もちろん、「いやいや、これは開発と申請で別にした方が。。。」といったものもありますが、それらは適宜説明していきます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; 最初にCSRを作る際に気をつけるべき事 &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
さて、それでは本題に移りましょう。&lt;br /&gt;
まず、実機テスト・並びに申請時に一番最初に手をつけることになるであろう作業「証明書要求(CSR)の作成」の際に気をつけるべき点を紹介しておきます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. 証明書情報の「通称」には、グループ単位の名前をつけよう&lt;br /&gt;
&lt;br /&gt;
CSRを作成しようとすると、そのフローの途中で「証明書情報」を入力する画面に差し掛かるでしょう。&lt;br /&gt;
ここで必要な情報として&lt;br /&gt;
・メールアドレス&lt;br /&gt;
・通称&lt;br /&gt;
という項目を入力し終えれば、CSRと秘密鍵(＋公開鍵)ができあがります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
と、ここでつい、通称として自分の名前を入れてしまう人などは、是非そこで注意して、「申請するグループ単位の名前」をつけるようにしましょう。&lt;br /&gt;
(※もちろん、個人で活動されている方は問題ありません。)&lt;br /&gt;
&lt;br /&gt;
ここでつけた名前は、その際に生成される秘密鍵などの名前になってきます。&lt;br /&gt;
では、なぜそれが個人名ではまずいのか？個人のものではないのか？なぜ「グループ単位の名前」がいいのか？&lt;br /&gt;
&lt;br /&gt;
それは、その後の実機開発などの際に関わってきます。&lt;br /&gt;
何台かのMacで同一のアカウントで実機テストを行おうと思った場合には、この秘密鍵と、それに対応する証明書、Profileなどがワンセットで必要になります。&lt;br /&gt;
&lt;br /&gt;
しかし、秘密鍵/証明書は、１つのアカウントごとに１つしか指定できないため、実質上、この鍵は他のマシンから移植するなど、徐々にプロジェクト全体、場合によっては会社全体で使われる事になっていくオチがあります。&lt;br /&gt;
そんな風に使われることになるので、ここに個人名がついていると、何の鍵だかよくわからない状態になってしまい、あまりよろしくありません。&lt;br /&gt;
(※各マシンごとに違うアカウントを発行して、それをすべて同じDeveloper Programに所属。。。とかやれないこともないですが、無駄に煩雑です)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
なので、あとで鍵が何のための物かすぐわかるように、適切な集団の名前をつけておくと、運用しやすくてよいでしょう。&lt;br /&gt;
(※なお、鍵の名前自体は、あとから変えることも出来なくはないです。)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. CSRと秘密鍵は、必ずペアして保存しておこう&lt;br /&gt;
&lt;br /&gt;
秘密鍵とともに、証明書要求用のCSRのファイルが生成されると思います。&lt;br /&gt;
このCSR、中間ファイルっぽいので、よく捨てられてしまう事があります。&lt;br /&gt;
が、実はこのファイル、安易に捨ててはいけません。&lt;br /&gt;
&lt;br /&gt;
というのも、最初の証明書を発行してから一定期間が経過すると証明書が有効期限切れになってしまい、再度証明書の要求をする必要がでてきます。&lt;br /&gt;
その際に、同じ秘密鍵を使い続ける＝環境を特にいじらずに済ますには、再び現行の秘密鍵と対応するCSRで証明書の要求をすることで、そのまま同じ環境を、大していじらずに使い続けることが可能になります。&lt;br /&gt;
&lt;br /&gt;
と、長期間続けて使い続けるには、このCSRが割と重要であるにもかかわらず、一度失ってしまうとあとから容易に復元でないため、このファイルは必ず、対応する秘密鍵とともにペアで保存しておくようにするとよいでしょう。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; おわり &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
さて、ひとまず今回は、全容の紹介と、CSR生成時に考えておくとよいことを紹介しました。&lt;br /&gt;
&lt;br /&gt;
次回以降でも、各ステップごとにとるべき対応やファイルの取り扱い方法について、紹介していきます。 </description>
						<guid>http://blog.asial.co.jp/732</guid>
			<pubDate>Wed, 04 Aug 2010 04:23:01 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>中田英寿氏が監修するスポーツコミュニティサイト「365すぽーつでぃ」を株式会社次空と共同開発</title>
						<link>http://blog.asial.co.jp/729</link>
						<description> この度、アシアルと株式会社次空は、サッカー元日本代表の中田英寿氏が監修する、スポーツを中心としたトータル・ライフ・コミュニティサイトである『365すぽーつでぃ』(&lt;a href=&quot;http://www.365spo.com&quot; target=&quot;_blank&quot;&gt;&lt;a href=&#039;http://www.365spo.com&#039;&gt;http://www.365spo.com&lt;/a&gt;&lt;/a&gt;)を共同で開発し、7月7日に正式オープンいたしました。&lt;br /&gt;
&lt;br /&gt;
今回開発した「365すぽーつでぃ」は、スポーツを楽しむ個人と個人、個人とチーム、プロアスリートとアマチュアユーザのコミュニケーションの場を設けることで、スポーツ活動への参加機会を増やすとともに、スポーツとライフスタイルの活性化を目指す、トータル・ライフ・コミュニティサイトです。&lt;br /&gt;
&lt;br /&gt;
個人の趣味・嗜好・スポーツ歴等のプロフィールを登録し、個人間の情報のやりとりができる「ソーシャルマネジメントシステム」で、一緒にスポーツを楽しめる人を探したり、「チーム・ユーザマネジメントシステム」で自分のやりたいスポーツへの参加メンバーや対戦相手を募集することができます。&lt;br /&gt;
&lt;br /&gt;
また、『365すぽーつでぃ』のサイト内では、プロアスリートが実践するトレーニングやテクニックの解説を映像で配信。それらの映像をきっかけに、SNS 上やコミュニティで一緒にスポーツする仲間が集う場を提供したり、映像配信されたアスリートやコーチが開催するイベントやスクールと連動することで、実際のスポーツ体験を創出し、青少年の育成、地域の活性化、スポーツ人口の増進に貢献しようというものです。参加アスリートとして、サッカーの中田英寿氏のほか、野球の古田敦也氏、テニスの杉山愛氏、マラソンの有森裕子氏など、各スポーツ分野のトップアスリートの方々を招聘しており、今後も様々な分野のスペシャリストにご参加戴く予定です。&lt;br /&gt;
&lt;br /&gt;
『365すぽーつでぃ』は、7,400万人といわれるスポーツ人口のうち、月間80万人の利用者数を目指した大規模なコミュニティサイトで、いつでも気軽に利用できるように、携帯サイトでの運営も行われています。また、人気アスリートの参加が予定されており、大規模なスポーツイベントが開催される年や、アスリートとのイベント連動時期など、アクセス数の急増と共に、必要なシステムリソースが一気に増加するなど、時期により激しくシステムリソースの利用量が変動することが考えられます。『365すぽーつでぃ』では、リソース使用量に応じたコスト最適化を実現するために、企業向けのクラウドサービス（PaaS／IaaS）であるTIS株式会社提供の『TIS Enterprise Ondemand Service』（※1）を採用しています。&lt;br /&gt;
&lt;br /&gt;
アシアルでは、サイト開発の中でこれらのニーズに応えるために、幅広い技術ノウハウを適用しています。&lt;br /&gt;
具体的には、高負荷に耐えうるシステム構成を構築するために、サーバの台数・構成変更に即時対応可能なアプリケーション設計を行い、データの種類と要求される速度・信頼度などに応じて、様々な特性のデータストレージを組み合わせて利用するなど、クラウド・プラットフォームやその他最新の技術を活用したシステムを構築しました。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
■ 主なアプリケーションの特徴&lt;br /&gt;
&lt;br /&gt;
・個人がプロフィールを登録し、コミュニケーションを行えるソーシャル機能&lt;br /&gt;
個人の趣味・嗜好・スポーツ歴等のプロフィールを登録し、個人間でのメッセージのやりとりや、コミュニティを作成することで情報交換を行えるコミュニティ機能。個人からチームへの参加申込、チームからの個人へのスカウトが行えるマッチング機能など。&lt;br /&gt;
&lt;br /&gt;
・スポーツ・チーム管理機能&lt;br /&gt;
チームメンバーの情報や出欠確認などを管理するメンバー管理機能、試合スケジュールや対戦情報の管理などのスケジュール管理機能、対戦相手の情報やよくコンタクトをとるチームを管理する対戦相手管理機能、対戦応募やオファー情報を管理する、対戦募集管理機能、チーム内の掲示板の設置など、チームの運営を補助するための管理するための機能。&lt;br /&gt;
&lt;br /&gt;
・スペシャリストが実践するトレーニングやテクニックの解説を映像で配信&lt;br /&gt;
各ジャンルのスペシャリストが実践するトレーニングやテクニックの解説を映像で配信。現在、参加アスリートとして、サッカーの中田英寿氏のほか、野球の古田敦也氏、テニスの杉山愛氏、マラソンの有森裕子氏など、各スポーツ分野のトップアスリートの方々を招聘しており、今後も様々な分野のスペシャリストにご参加戴く予定。さらにトレーナーなどの専門家や、食・ビューティに至るまで、ライフスタイルを豊かにする情報を提供予定。&lt;br /&gt;
&lt;br /&gt;
※1TIS Enterprise Cloud Service（&lt;a href=&#039;http://www.tis.co.jp/service/paas/overview&#039;&gt;http://www.tis.co.jp/service/paas/overview&lt;/a&gt;）&lt;br /&gt;
TIS株式会社が提供するクラウドサービス。企業ITシステムでのクラウド利用のメリットを最大限に活用する為に、従来型の個別システムとクラウド環境を併用した形のハイブリッドなシステムの実現を支援するPaaS/IaaSです。TISがこれまで培ってきた大規模システムのシステム・インテグレーション（SI）と運用の実績やノウハウに基づいたSI技術とクラウド技術を組み合わせて、企業システムの最適化されたITインフラ構築を支援します。&lt;br /&gt;
&lt;br /&gt;
TOPページ&lt;br /&gt;
本サービスの機能一覧をわかりやすくご説明いたします&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1203&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1203&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
コミュニティページ&lt;br /&gt;
スポーツに関する話題でコミュニケーションができます&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1204&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1204&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
動画ページ&lt;br /&gt;
各分野のスペシャリストの動画を見ることができます&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1205&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1205&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
ユーザ検索ページ&lt;br /&gt;
登録されているユーザを検索することができます&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1206&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1206&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
チーム検索ページ&lt;br /&gt;
登録されているチームを検索することができます&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1207&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1207&quot; /&gt;&lt;/a&gt; </description>
						<guid>http://blog.asial.co.jp/729</guid>
			<pubDate>Mon, 02 Aug 2010 11:45:00 +0900</pubDate>
			<category>サービス</category>
		</item>
				<item>
			<title>開発でよく使うTool纏めMac偏</title>
						<link>http://blog.asial.co.jp/730</link>
						<description> Smulrton&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1208&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1208&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
いちごのエディターです。アイコンがイチゴ&lt;br /&gt;
Smulrtonはスエーデン語で野いちごの意味らしいです。&lt;br /&gt;
日本語ローカライズされていて機能的にもそこそこ備えたエディターです。&lt;br /&gt;
残念な事に開発は終わってるみたいですが。。&lt;br /&gt;
&lt;a href=&#039;http://smultron.sourceforge.net/&#039;&gt;http://smultron.sourceforge.net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Mac Vim&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1210&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1210&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
言わずと知れたViのクローンです。&lt;br /&gt;
Gvimとは違いヴィジュアルモードも使えます。&lt;br /&gt;
Macには標準でコンソールから呼び出せるViもあるのですが、気分で使いわけてます。&lt;br /&gt;
インストールはPortsからできます。&lt;br /&gt;
&lt;br /&gt;
eclipse&lt;br /&gt;
eclipseは便利ですね。&lt;br /&gt;
Viしか使えない環境ではViを使うのですが、Sumba環境だと動きが遅いので出来るだけローカルに開発環境がある時はeclipseを使って開発してます。&lt;br /&gt;
&lt;br /&gt;
ちょいネタでeclipseの日本語化について&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1209&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1209&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
日本語化してeclipseを使っているのですが、私はMerge Doc Projectを使って日本語化しました。&lt;br /&gt;
&lt;br /&gt;
Merge Doc ProjectのページからPleiades All in one Eclipse 3.6.0 Helios Windows 32bit ベース / Pleiades All in One 3.6.0.20100623をDL&lt;br /&gt;
します。&lt;br /&gt;
私はPHPのFull All in One をDLしました。&lt;br /&gt;
&lt;a href=&#039;http://mergedoc.sourceforge.jp/&#039;&gt;http://mergedoc.sourceforge.jp/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Mac版のEclipse（Eclipse Classic 3.6.0）をDlします。&lt;br /&gt;
&lt;a href=&#039;http://www.eclipse.org/downloads/&#039;&gt;http://www.eclipse.org/downloads/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
解凍するとeclipseディレクトリーが出てくるので、eclipseディレクトリー配下のdoropinsディレクトリーの中に先程落としてきたPleiades All in one Eclipseの中にあるdorpinsディレクトリーの中身をコピーします。同名のファイルがある場合は上書きします。&lt;br /&gt;
&lt;br /&gt;
eclipse.iniの中身を編集します。&lt;br /&gt;
eclipse.iniはEclipseアイコンの上で右クリック「パッケージの内容を表示」→Contents→MacOSの順に辿って行くとあります。&lt;br /&gt;
Windows版はexeファイルと同じディレクトリーに同名であります。&lt;br /&gt;
&lt;br /&gt;
編集方法は感でマージします。（すいません、ここんとこよくわかんないです。）&lt;br /&gt;
私の環境では以下の内容で動きました。&lt;br /&gt;
&lt;br /&gt;
&lt;ol class=&quot;boxcode-main&quot;&gt;&lt;li&gt;-startup&lt;/li&gt;&lt;li&gt;../../../plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar&lt;/li&gt;&lt;li&gt;--launcher.library&lt;/li&gt;&lt;li&gt;../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.0.v20100503&lt;/li&gt;&lt;li&gt;-product&lt;/li&gt;&lt;li&gt;org.eclipse.epp.package.php.product&lt;/li&gt;&lt;li&gt;--launcher.defaultAction&lt;/li&gt;&lt;li&gt;openFile&lt;/li&gt;&lt;li&gt;-showsplash&lt;/li&gt;&lt;li&gt;org.eclipse.platform&lt;/li&gt;&lt;li&gt;--launcher.XXMaxPermSize&lt;/li&gt;&lt;li&gt;256m&lt;/li&gt;&lt;li&gt;--launcher.defaultAction&lt;/li&gt;&lt;li&gt;openFile&lt;/li&gt;&lt;li&gt;--launcher.library&lt;/li&gt;&lt;li&gt;/Applications/eclipse_cocoa/plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.0.v20100503&lt;/li&gt;&lt;li&gt;-startup&lt;/li&gt;&lt;li&gt;/Applications/eclipse_cocoa/plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar&lt;/li&gt;&lt;li&gt;-vmargs&lt;/li&gt;&lt;li&gt;-Dosgi.requiredJavaVersion=1.5&lt;/li&gt;&lt;li&gt;-XstartOnFirstThread&lt;/li&gt;&lt;li&gt;-Dorg.eclipse.swt.internal.carbon.smallFonts&lt;/li&gt;&lt;li&gt;-XX:MaxPermSize=256m&lt;/li&gt;&lt;li&gt;-Xms128m&lt;/li&gt;&lt;li&gt;-Xmx512m&lt;/li&gt;&lt;li&gt;-Xdock:icon=../Resources/Eclipse.icns&lt;/li&gt;&lt;li&gt;-XstartOnFirstThread&lt;/li&gt;&lt;li&gt;-Dorg.eclipse.swt.internal.carbon.smallFonts&lt;/li&gt;&lt;li&gt;-javaagent:../../../dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
DB Tool&lt;br /&gt;
コンソールでsqlを操作してもいいのですが、GUIで操作したほうがテーブル名やカラム名を見ながらデータの中身を見たり&lt;br /&gt;
直感的に操作できて作業効率も上がるので私は基本的にGUIのToolを使ってます。&lt;br /&gt;
普段MySqlを使っているのでMySqlに特化してますが、Sequel Proが使いやすいと思います。&lt;br /&gt;
UTF-8環境では日本語も表示されました。&lt;br /&gt;
スクリーンショットは本家のサイトでみてみてください。（スクリーンショット撮るとお客さんの環境が見えてしまうので・・・）&lt;br /&gt;
&lt;a href=&#039;http://www.sequelpro.com/&#039;&gt;http://www.sequelpro.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
とりあえず、エディターとDBの中身が見えればコードは書けるかなって事でエディターとDBToolの紹介でした。&lt;br /&gt;
&lt;br /&gt;
おまけ&lt;br /&gt;
MacPorts使うならPorticusを使うのが便利ですよ。&lt;br /&gt;
MacPorts&lt;br /&gt;
&lt;a href=&#039;http://www.macports.org/&#039;&gt;http://www.macports.org/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Porticus&lt;br /&gt;
&lt;a href=&#039;http://porticus.alittledrop.com/&#039;&gt;http://porticus.alittledrop.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
あ、あとブラウザーも必要ですねｗ&lt;br /&gt;
私はFirefox＋FireBug使ってます。 </description>
						<guid>http://blog.asial.co.jp/730</guid>
			<pubDate>Fri, 30 Jul 2010 19:16:20 +0900</pubDate>
			<category>Tech</category>
		</item>
				<item>
			<title>AJAX内でのリダイレクト処理の罠</title>
						<link>http://blog.asial.co.jp/728</link>
						<description> こんばんは。笹亀です。&lt;br /&gt;
&lt;br /&gt;
iPhoneの白をず〜〜っと待っているのですが、&lt;br /&gt;
今年末ということになってとても残念でなりません。&lt;br /&gt;
ここまで待ったので気長に待つことにします。&lt;br /&gt;
&lt;br /&gt;
さて今日はAJAX内でのリダイレクト処理をした際に、&lt;br /&gt;
起こったことをご紹介させていただきます。&lt;br /&gt;
&lt;br /&gt;
結論から言うと、&lt;br /&gt;
「AJAX内でリダイレクトするときはセッションは使うな！」&lt;br /&gt;
&lt;br /&gt;
まずは遷移として下記のように試しました。&lt;br /&gt;
AJAXでSymfonyをfile_get_contentsで呼び出すスクリプトを指定します。&lt;br /&gt;
&lt;ol class=&quot;boxcode-main&quot;&gt;&lt;li&gt;info.php&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;↓AJAXで呼び出し&lt;/li&gt;&lt;li&gt;get.php(外部のSymfonyで作成されたページの呼び出し)&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;↓file_get_contents関数で呼び出し&lt;/li&gt;&lt;li&gt;http://sasa.local/top/sessionTest&lt;/li&gt;&lt;li&gt;&lt;wbr /&gt;&amp;nbsp;↓(Symfony内でリダイレクト&lt;/li&gt;&lt;li&gt;http://sasa.local/top/sessionTest1&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;※Symfonyのリダイレクト(redirect)を使用してセッションのデータを書き込んで値を引き継ぐことができるのかを試しました。&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
まずは表示する側のページを作成します。&lt;br /&gt;
&lt;br /&gt;
-- info.php&lt;br /&gt;
&lt;ol class=&quot;html-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;DOCTYPE&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;PUBLIC&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;-//W3C//DTD&lt;wbr /&gt;&amp;nbsp;XHTML&lt;wbr /&gt;&amp;nbsp;1.0&lt;wbr /&gt;&amp;nbsp;Transitional//EN&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;http://www.w3.org/1999/xhtml&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;xml:lang&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;ja&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;ja&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;meta&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;http-equiv&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;Content-Type&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/html;&lt;wbr /&gt;&amp;nbsp;charset=utf-8&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;meta&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;http-equiv&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;Content-Style-Type&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/css&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;meta&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;http-equiv&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;Content-Script-Type&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/javascript&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;symfony&amp;amp;ajax&lt;wbr /&gt;&amp;nbsp;session&lt;wbr /&gt;&amp;nbsp;Test&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;language&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;JavaScript&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/javascript&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;/jquery.js&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-comment&quot;&gt;&amp;lt;!--&lt;wbr /&gt;&amp;nbsp;EXPAND&lt;wbr /&gt;&amp;nbsp;SKIPED&lt;wbr /&gt;&amp;nbsp;--&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;text/javascript&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-comment&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;function&lt;wbr /&gt;&amp;nbsp;ajax_test()&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;$.ajax(&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;type&lt;wbr /&gt;&amp;nbsp;:&lt;wbr /&gt;&amp;nbsp;&amp;quot;POST&amp;quot;,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;url&lt;wbr /&gt;&amp;nbsp;:&lt;wbr /&gt;&amp;nbsp;&amp;quot;get.php&amp;quot;,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;data&lt;wbr /&gt;&amp;nbsp;:&lt;wbr /&gt;&amp;nbsp;{param&lt;wbr /&gt;&amp;nbsp;:&lt;wbr /&gt;&amp;nbsp;&amp;quot;sasagame&lt;wbr /&gt;&amp;nbsp;hiroshi&amp;quot;},&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;success&lt;wbr /&gt;&amp;nbsp;:&lt;wbr /&gt;&amp;nbsp;function(txt)&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;$(&#039;#view_area&#039;).html(txt);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;},&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;error&lt;wbr /&gt;&amp;nbsp;:&lt;wbr /&gt;&amp;nbsp;function()&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;alert(&#039;error&#039;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;});&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-comment&quot;&gt;//&lt;wbr /&gt;&amp;nbsp;--&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;symfonyとセッションのテスト中&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;br&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;button&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;onClick&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;ajax_test();return&lt;wbr /&gt;&amp;nbsp;false;&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;テスト開始&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;html-var&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-string&quot;&gt;view_area&lt;/span&gt;&lt;span class=&quot;html-quotes&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;html-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html-reserved&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;html-brackets&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
次にAJAXの呼び出し側のPHPスクリプトを作成します。&lt;br /&gt;
-- get.php&lt;br /&gt;
&lt;ol class=&quot;php-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;php-inlinetags&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$html&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-identifier&quot;&gt;file_get_contents&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;php-string&quot;&gt;http://sasa.local/top/sessionTest?param=sasagame+hiroshi&lt;/span&gt;&lt;span class=&quot;php-quotes&quot;&gt;&#039;&lt;/span&gt;&lt;span class=&quot;php-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-reserved&quot;&gt;echo&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;php-var&quot;&gt;$html&lt;/span&gt;&lt;span class=&quot;php-code&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;/span&gt;&lt;span class=&quot;php-inlinetags&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;※ここではSymfonyで作成されたページを指定しております&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
get.phpで呼び出しているSymfony側の処理を実装します。&lt;br /&gt;
&lt;br /&gt;
&lt;ol class=&quot;php-main&quot;&gt;&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;・・・省略&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;public&lt;wbr /&gt;&amp;nbsp;function&lt;wbr /&gt;&amp;nbsp;executeSessionTest(sfWebRequest&lt;wbr /&gt;&amp;nbsp;$request)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;$param&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;$request-&amp;gt;getParameter(&#039;param&#039;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;$this-&amp;gt;getUser()-&amp;gt;setAttribute(&#039;session_test&#039;,&lt;wbr /&gt;&amp;nbsp;$param);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;$this-&amp;gt;redirect(&#039;top/sessionTest1&#039;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;public&lt;wbr /&gt;&amp;nbsp;function&lt;wbr /&gt;&amp;nbsp;executeSessionTest1(sfWebRequest&lt;wbr /&gt;&amp;nbsp;$request)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;$param&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;$request-&amp;gt;getParameter(&#039;param&#039;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;$session_data&lt;wbr /&gt;&amp;nbsp;=&lt;wbr /&gt;&amp;nbsp;$this-&amp;gt;getUser()-&amp;gt;getAttribute(&#039;session_test&#039;,&lt;wbr /&gt;&amp;nbsp;&#039;取得できない&#039;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;echo&lt;wbr /&gt;&amp;nbsp;&#039;session_test_data:&#039;&lt;wbr /&gt;&amp;nbsp;.&lt;wbr /&gt;&amp;nbsp;$session_data&lt;wbr /&gt;&amp;nbsp;.&lt;wbr /&gt;&amp;nbsp;&amp;quot;&amp;lt;br&lt;wbr /&gt;&amp;nbsp;/&amp;gt;&amp;quot;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;echo&lt;wbr /&gt;&amp;nbsp;print_r($_SESSION,&lt;wbr /&gt;&amp;nbsp;true);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;exit;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;&lt;wbr /&gt;&amp;nbsp;&lt;wbr /&gt;&amp;nbsp;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;php-code&quot;&gt;・・・省略&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
上記のように実装完了後に実際に動かしてみます。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1200&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1200&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
テスト開始ボタンをクリック・・&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1201&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1201&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
うあ、やっぱり取得できません。&lt;br /&gt;
&lt;br /&gt;
普通にSymfony側を実行すれば、セッションデータの取得はおこなえます。&lt;br /&gt;
&lt;a href=&quot;/read_file.php?id=1202&amp;mode=1&quot; rel=&quot;lightbox&quot; class=&quot;link-lightbox&quot;&gt;&lt;img src=&quot;http://blog.asial.co.jp/read_file.php?id=1202&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
普通にAJAXで処理するときには、ご紹介させていただいたようなリダレクトして処理を遷移させて使うみたいなことはそうそうないことだとおもいます。&lt;br /&gt;
今回はイレギュラー的にどうしてもセッションを使ってリダイレクトすることになってしまいました。なぜだといろいろと試行したため時間を使いました。先入観で出来るだろうと思って使うと痛い目にあいますというか痛い目にあいました。&lt;br /&gt;
&lt;br /&gt;
教訓としてはこんな遠まわしな使い方をするなということと先入観で使用するなでした＾＾；&lt;br /&gt;
&lt;br /&gt;
皆さんもAJAX使うときには気をつけてくださいませ。 </description>
						<guid>http://blog.asial.co.jp/728</guid>
			<pubDate>Wed, 28 Jul 2010 23:03:35 +0900</pubDate>
			<category>Tech</category>
		</item>
		
	</channel>
</rss>