(57)【要約】      （修正有）【課題】デバッグ専用ポートを有しないコンピュータシステムであってもソフトウェアの障害解析に必要なログデータを効率的かつ容易に取得することができ、これによりソフトウェアの障害解析に要する時間を短縮することができるソフトウェア解析システムを提供する。【解決手段】電子機器に組み込まれているソフトウェアの解析を行うソフトウェア解析システムであって、前記電子機器には、少なくとも外部から着脱可能にストレージデバイスを取り付けるためのスロット１４０と、ソフトウェア割込みや未定義命令例外処理を行うフック処理部１２３が設けられ、前記ストレージデバイスを取り付けるためのスロットにはロギングデータを保存するロギング機器２００が接続され、このロギング機器にはこのロギング機器に保存されたロギングデータに基づき所望の解析を行う解析手段が接続された。【選択図】図１
2010039884.tif 000002
【特許請求の範囲】
【請求項１】
電子機器に組み込まれているソフトウェアの解析を行うソフトウェア解析システムであって、
前記電子機器には、少なくとも外部から着脱可能にストレージデバイスを取り付けるためのスロットと、ソフトウェア割込みや未定義命令例外処理を行うフック処理部が設けられ、
前記ストレージデバイスを取り付けるためのスロットにはロギングデータを保存するロギング機器が接続され、
このロギング機器にはこのロギング機器に保存されたロギングデータに基づき所望の解析を行う解析手段が接続されたことを特徴とするソフトウェア解析システム。
【請求項２】
電子機器に組み込まれているソフトウェアの解析を行うソフトウェア解析システムであって、
前記電子機器には、少なくとも外部から着脱可能にストレージデバイスを取り付けるためのスロットと、ソフトウェア割込みや未定義命令例外処理を行うフック処理部と、ＴＡＰ（Test Access Port）コントローラと、このＴＡＰコントローラと接続されるコネクタが設けられ、
前記ストレージデバイスを取り付けるためのスロットにはロギングデータを保存するロギング機器が接続され、
前記ＴＡＰコントローラと接続されるコネクタにはＩＣＥ(In-Circuit Emulator)を介してデバッガが接続され、
前記ロギング機器には前記ロギング機器に保存されたロギングデータに基づき所望の解析を行う解析手段が接続され、
前記デバッガとＩＣＥとＴＡＰコントローラにより前記フック処理部を制御し、前記ロギングデータ出力をＯＮ/ＯＦＦ制御することを特徴とするソフトウェア解析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア解析システムに関し、詳しくは、業務用ハンディターミナル、カーナビ、モバイルフォン、スマートフォン、デジタルテレビなどの各種電子機器に組み込まれているソフトウェアのデバッグに有効なシステムに関する。
【背景技術】
【０００２】
一般に、業務用ハンディターミナル、カーナビ、モバイルフォン、スマートフォン、デジタルテレビなどの電子機器では、開発の最終段階において、組み込まれるソフトウェアの所期の機能が実現されるか否か、あるいは異常動作が出現するか否かを確認することなどを目的としたデバッグ作業が行われる。また、製品として出荷された後においても、ソフトウェアの機能改善や性能向上などを目的としたデバッグ作業が行われる。
【０００３】
図１２は、従来のソフトウェア解析システムの一例を示す構成図である。ソフトウェア解析システムは、デバッグの対象となるコンピュータシステム１００と、ロギング制御機器２００と、解析用パーソナルコンピュータ（ＰＣ）３００などで構成されている。
【０００４】
デバッグの対象となる業務用ハンディターミナル、カーナビ、モバイルフォン、スマートフォン、デジタルテレビなどの電子機器を構成するコンピュータシステム１００は、大きくはハードウェアブロック１１０とソフトウェアブロック１２０とで構成されている。
【０００５】
ハードウェアブロック１１０は、ＣＰＵ１１１、内部バス１１２を介してＣＰＵ１１１に接続された外部バスインタフェース（Ｉ/Ｆ）１１３、一時的に各種データを格納するＲＡＭ１１４と、所定の固定データを格納するＲＯＭ１１５、各種周辺機器を制御する周辺コントローラ１１６などで構成されていて、周辺コントローラ１１６には着脱可能な外部ストレージ１１７が接続されている。外部バスＩ/Ｆ１１３は、専用ポート１３０および専用ケーブル２１０を介してロギング制御機器２００に接続されている。
【０００６】
ソフトウェアブロック１２０は、オペレーティングシステム１２１と、アプリケーションシステム１２２とで構成されている。
【０００７】
解析用ＰＣ３００は、表示ソフトウェア３１０、キーボード３２０、マウス３３０、ディスプレイ３４０などで構成されている。ロギング制御機器２００と解析用ＰＣ３００との接続には、たとえばＵＳＢ（Universal Serial Bus）ケーブルやＬＡＮ（Local Area Network）ケーブルが用いられる。
【０００８】
このような構成において、オペレーティングシステム１２１およびアプリケーションシステム１２２のアプリケーションソフトウェア、ドライバ、ミドルウェア内には、ソフトウェアのデバッグに有効なロギングデータ出力処理があらかじめ実装されている。
【０００９】
デバッグに関連するロギングデータは、専用ポート１３０および専用ケーブル２１０を介してロギング制御機器２００に蓄積される。
【００１０】
解析用ＰＣ３００上では、ロギング制御機器２００に蓄積されたロギングデータにアクセスするための専用の表示ソフトウェア３１０が動作する。この表示ソフトウェア３１０を使用して、ロギングデータのグラフィカルな表示、高速検索、条件検索などが実行される。これらの情報を参照することにより、オペレーティングシステム１２１およびアプリケーションソフトウェア、ドライバ、ミドルウェアなどのアプリケーションシステム１２２の解析やデバッグ操作が行われる。
【００１１】
なお、以下の特許文献１〜３には、ログデータをログファイルに記録する機能があらかじめコンピュータに組み込まれていて、この機能を用いてテスト対象のソフトウェアなどの動作状況を示すログデータを取得するシステムが開示されている。
【特許文献１】特開２００７−２６４７５３号公報
【特許文献２】特開２００３−１７８２８５号公報
【特許文献３】特開２００２−３２８８１７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、ソフトウェア障害解析をロギング手法で行う場合、ロギングするデータ転送量が多いと、出力に要するオーバーヘッド時間も比例して大きくなるという潜在的な問題がある。
【００１３】
また、ＪＴＡＧ（Joint Test Action Group）Ｉ/Ｆ、シリアルポート、ＬＡＮのようなデバッグのために用意された汎用的なデバッグポートを用いる手法では、ロギング出力に要する処理速度が問題になることがある。たとえば動作タイミングによって発生するソフトウェア障害の解析時に詳細な大量のロギング情報を出力すると、現象そのものが変化したり再現しなくなることがあり、このためロギングのデータ転送量をこまめに制限して、調整する必要がある。
【００１４】
このような問題を解決するために、図１２に示すように外部バスＩ/Ｆ１１３を専用ポートとして用いる手法が開発された結果、上記の汎用デバッグポートに比べ出力に要するオーバーヘッドが圧倒的に小さくなり、ソフトウェア障害の解析に適用できる範囲を大幅に拡大できるようになった。そしてこの利点を利用して関数の入口や出口でロギングを出力することにより、システム全体の挙動をロギングできるようになった。また、ロギングデータにはその種類に応じてインデックスを付与し、そのインデックス情報をロギングデータとは別管理することで、ロギングデータ参照のときに高速に情報検索ができるようになった。
【００１５】
しかし、製品化されたコンピュータシステムでは、コストおよび実装面積削減のためにデバッグポートそのものを除いてしまっていることが一般的であり、この専用ポートを用いたソフトウェア障害解析が物理的にできないという問題がある。そのため、製品化されたコンピュータシステムで発生した机上デバッグが不可能なソフトウェア障害は、専用デバッグポートの付いたデバッグ機にてその障害を再現させた後に解析やデバッグを行わなければならず、結果として再現性の低い障害の解析にあたり、現象を再現させることに多大な時間を要していた。
【００１６】
本発明は上記事情に鑑みてなされたものであり、デバッグ専用ポートを有しないコンピュータシステムであってもソフトウェアの障害解析に必要なログデータを効率的かつ容易に取得することができ、これによりソフトウェアの障害解析に要する時間を短縮することができるソフトウェア解析システムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記課題を解決するために、本発明の請求項１は、
電子機器に組み込まれているソフトウェアの解析を行うソフトウェア解析システムであって、
前記電子機器には、少なくとも外部から着脱可能にストレージデバイスを取り付けるためのスロットと、ソフトウェア割込みや未定義命令例外処理を行うフック処理部が設けられ、
前記ストレージデバイスを取り付けるためのスロットにはロギングデータを保存するロギング機器が接続され、
このロギング機器にはこのロギング機器に保存されたロギングデータに基づき所望の解析を行う解析手段が接続されたことを特徴とする。
【００１８】
本発明の請求項２は、
電子機器に組み込まれているソフトウェアの解析を行うソフトウェア解析システムであって、
前記電子機器には、少なくとも外部から着脱可能にストレージデバイスを取り付けるためのスロットと、ソフトウェア割込みや未定義命令例外処理を行うフック処理部と、ＴＡＰ（Test Access Port）コントローラと、このＴＡＰコントローラと接続されるコネクタが設けられ、
前記ストレージデバイスを取り付けるためのスロットにはロギングデータを保存するロギング機器が接続され、
前記ＴＡＰコントローラと接続されるコネクタにはＩＣＥ(In-Circuit Emulator)を介してデバッガが接続され、
前記ロギング機器には前記ロギング機器に保存されたロギングデータに基づき所望の解析を行う解析手段が接続され、
前記デバッガとＩＣＥとＴＡＰコントローラにより前記フック処理部を制御し、前記ロギングデータ出力をＯＮ/ＯＦＦ制御することを特徴とする。
【発明の効果】
【００１９】
本発明によれば、デバッグ専用ポートを有しないコンピュータシステムであってもソフトウェアの障害解析に必要なログデータを効率的かつ容易に取得することができ、これによりソフトウェアの障害解析に要する時間を短縮することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の実施形態によるソフトウェア解析システムについて詳細に説明する。
【００２１】
〔第１実施形態〕
図１は本発明の第１実施形態によるソフトウェア解析システムの要部構成を示すブロック図であり、図１２と共通する部分には同一の符号を付けている。図１において、デバッグの対象となるコンピュータシステム１００のハードウェアブロック１１０には、従来の外部バスＩ/Ｆ１１３に代えてハードディスク、ＳＤ（登録商標）メモリ、ＣＦ（Compact Flash）メモリ、ＵＳＢメモリなどの図示しないストレージデバイス用のストレージデバイスＩ/Ｆ１１８が設けられている。このストレージデバイスＩ/Ｆ１１８は、これらストレージデバイスを外部から着脱できるように設けられたデバイス用スロット１４０と接続されている。
【００２２】
なお、デバッグにあたり、デバイス用スロット１４０には、ストレージデバイスに代えて、スロット１４０に嵌合するコネクタを有するケーブル２１０を介してロギング制御機器２００が接続される。
【００２３】
また、コンピュータシステム１００のソフトウェアブロック１２０において、オペレーティングシステム１２１には、ソフトウェア割込みや未定義命令例外処理のためのフック処理部１２３が設けられている。さらに、ソフトウェアブロック１２０には、ストレージデバイス制御処理部１２４が設けられている。
【００２４】
フック処理部１２３は、アプリケーションシステム１２２のアプリケーションソフトウェア、ドライバ、ミドルウェアから任意のロギングを出力するのにあたり、ソフトウェア割込み命令や未定義命令を実行することで呼び出される。
【００２５】
フック処理部１２３は、必要があれば割込み禁止などによる排他制御を施した後、ストレージデバイス制御処理部１２４にロギングデータを渡す。ストレージデバイス制御処理部１２４は、ストレージデバイスＩ/Ｆ１１８に渡されたロギングデータを出力する。ストレージデバイスＩ/Ｆ１１８から出力されたデータは、ロギング制御機器２００により、ロギング制御機器２００の内部に設けられている記憶媒体に保存される。
【００２６】
ロギング制御機器２００の記憶媒体に保存されたロギングデータは、表示ソフトウェア３１０により読み出され、ディスプレイ３４０に表示される。デバッグ作業者は、キーボード３２０やマウス３３０などを操作することによってロギングデータに対する所望の検索条件を設定し、ロギングデータを絞り込んで必要な解析を行う。
【００２７】
図２は、図１のソフトウェア処理に関連した機能ブロック図である。図２のプロセスＡにおいて、オペレーティングシステム１２１の上で、監視対象となるアプリケーションソフトウェア、ドライバまたはミドルウェアなどのアプリケーションシステム１２２が動作している。これらアプリケーションシステム１２２には、静的に検索用インデックスが付与されたロギングデータと、フック処理部１２３を呼び出すための命令がコードに埋め込まれており、ロギングデータが出力されるときにフック処理部１２３も呼び出される。
【００２８】
フック処理部１２３は、ストレージデバイス制御処理部１２４の状態を監視していて、ストレージデバイス制御処理部１２４が空き状態になると、取得したロギングデータとして、ストレージデバイス制御処理部１２４に渡す。ストレージデバイス制御処理部１２４は、ストレージデバイスＩ/Ｆ１１８に対してコマンドとデータを出力する。
【００２９】
図２のプロセスＢにおいて、ロギング制御機器２００は、ストレージデバイス制御処理部１２４から出力されたロギングデータに時間情報を付与する。また、ロギングデータのインデックスから、インデックスと対応する格納アドレスを記した管理情報を生成する。その後、ロギングデータとその管理情報を内部の記憶媒体に保存する。管理情報は、ロギングデータを絞り込んだり検索したりするときに利用する。ここで、ロギングデータは、非ファイル形式でロギング制御機器２００の記憶媒体に取り込まれる。
【００３０】
図２のプロセスＣにおいて、表示ソフトウェア３１０は、ロギング制御機器２００に蓄積されたロギングデータを表示する。このとき、必要であれば、蓄積された管理情報から特定のインデックスのみを選択表示する。
【００３１】
図３は、図２のプロセスＡにおけるフック処理部１２３の処理の流れを説明するフローチャートである。フック処理部１２３は、ストレージデバイスＩ/Ｆ１１８の状態を見て（ステップＳＰ１）、待機状態であればロギングデータを出力する（ステップＳＰ２）。ストレージデバイスＩ/Ｆ１１８が処理中であれば処理が終了するまで待つ。ストレージデバイスＩ/Ｆ１１８に出力するときは排他制御して割込みを禁止にする。
【００３２】
図４は、図２のプロセスＢにおけるロギング制御機器２００の処理の流れを説明するフローチャートである。ロギング制御機器２００は、まずパケットデータを時系列順にソートする（ステップＳＰ１）。次に、時刻などの補完情報を追加する（ステップＳＰ２）。続いて、インデックス情報などの管理情報を生成する（ステップＳＰ３）。そして、ストレージデバイスＩ/Ｆ１８から出力されたロギングデータに出力時間を追加して記録媒体に記録する（ステップＳＰ４）。また、記録と並行にロギングデータに含まれるインデックスと記録媒体の保存場所をセットにしたテーブルを作成してロギングデータとは別の場所に記録する。
【００３３】
図５は、図２のプロセスＣにおける表示ソフトウェア３１０の処理の流れを説明するフローチャートである。デバッグ作業者の要求に基づき取得すべきデータを選択し（ステップＳＰ２）、選択されたロギングデータを読み込んだ後（ステップＳＰ２）、それら取得データをグラフィカルに表示する（ステップＳＰ２）。また、デバッグ作業者の指定条件をインデックス別にソートすることや時系列にソートすることもできる。
【００３４】
マルチスレッドプログラミングでは、突然デッドロックになってしまうことがあり、従来のこうした状態でのデバッグにあたっては、ロギングデータにこまめに識別コードを入れてデットロックが起きる条件や場所を特定していた。
【００３５】
これに対し、本発明では、常に関数の入口や出口にインデックス付のロギングデータをストレージデバイスＩ/Ｆ１１８経由で出力して外部のロギング制御機器２００内の記録媒体に蓄積することで、再現手順を踏まずに場所や条件を特定できる。
【００３６】
さらに、このソフトウェア解析システムは、製品ボードのような専用デバッグポートが存在していないコンピュータシステムであっても、ストレージデバイスを外部から着脱できるようにデバイス用スロットが設けられていれば適用できる。そして、問題の場所や条件については、インデックスや時間による絞込みが行えるので、後から容易に特定することができる。
【００３７】
〔第２実施形態〕
図６は本発明の第２実施形態によるソフトウェア解析システムの要部構成を示すブロック図であり、図１と共通する部分には同一の符号を付けている。図６において、デバッグの対象となるコンピュータシステム１００のＣＰＵ１１１にはＴＡＰ（Test Access Port）コントローラ１１９が設けられ、このＴＡＰコントローラ１１９には外部と接続するためのコネクタ１５０が接続されている。このコネクタ１５０には、ＪＴＡＧ専用ケーブル４１０を介してＪＴＡＧ−ＩＣＥ(In-Circuit Emulator)４００が接続されている。
【００３８】
解析用ＰＣ３００には、図１の構成の他にデバッガ３５０が設けられている。このデバッガ３５０には、ＵＳＢ／ＬＡＮケーブル４２０を介してＪＴＡＧ−ＩＣＥ４００が接続されている。
【００３９】
すなわち、デバッガ３５０はＪＴＡＧ−ＩＣＥ４００に接続されていて、ＴＡＰコントローラ１１９を介してコンピュータシステム１００の実行制御やメモリやレジスタへのアクセスが可能になっている。
【００４０】
これにより、デバッグ作業者は、必要に応じてデバッガ３５０からフック処理部１２３を呼び出すための命令をＮＯＰ命令や分岐命令に書き換えることにより、動的にロギングデータの読み出し動作を無効化できる。ロギングデータを再出力させたいときは、元のデータに書き戻す。
【００４１】
図７は、図６のソフトウェア処理に関連した機能ブロック図であり、図２と共通する部分には同一の符号を付けている。図７では、図２のプロセスＡ〜Ｃの他に、プロセスＤが追加されている。
【００４２】
図７のプロセスＡでは、図２と同様に、オペレーティングシステム１２１の上で、監視対象となるアプリケーションソフトウェア、ドライバまたはミドルウェアなどのアプリケーションシステム１２２が動作している。これらアプリケーションシステム１２２には、静的に検索用インデックスが付与されたロギングデータと、フック処理部１２３を呼び出すための命令がコードに埋め込まれており、ロギングデータが出力されるときにフック処理部１２３も呼び出される。フック処理部１２３は、ストレージデバイス制御処理部１２４の状態を監視していて、ストレージデバイス制御処理部１２４が空き状態になると、取得したロギングデータとして、ストレージデバイス制御処理部１２４に渡す。ストレージデバイス制御処理部１２４は、ストレージデバイスＩ/Ｆ１１８に対してコマンドとデータを出力する。
【００４３】
図７のプロセスＢにおいて、図２と同様に、ロギング制御機器２００は、ストレージデバイス制御処理部１２４から出力されたロギングデータに時間情報を付与する。また、ロギングデータのインデックスから、インデックスと対応する格納アドレスを記した管理情報を生成する。その後、ロギングデータとその管理情報を内部の記憶媒体に保存する。管理情報は、ロギングデータを絞り込んだり検索したりするときに利用する。
【００４４】
図７のプロセスＣにおいて、図２と同様に、表示ソフトウェア３１０は、ロギング制御機器２００に蓄積されたロギングデータを表示する。このとき、必要であれば、蓄積された管理情報から特定のインデックスのみを選択表示する。
【００４５】
図７のプロセスＤにおいて、デバッガ３５０とＪＴＡＧ−ＩＣＥ４００とＴＡＰコントローラ１１９により、ロギングデータ出力のＯＮ/ＯＦＦ制御が行われる。
【００４６】
図８は、図７のプロセスＡにおけるフック処理部１２３の処理の流れを説明するフローチャートである。フック処理部１２３は、ストレージデバイスＩ/Ｆ１１８の状態を見て（ステップＳＰ１）、待機状態であればロギングデータを出力する（ステップＳＰ２）。ストレージデバイスＩ/Ｆ１１８が処理中であれば処理が終了するまで待つ。ストレージデバイスＩ/Ｆ１１８に出力するときは排他制御して割込みを禁止にする。
【００４７】
図９は、図７のプロセスＢにおけるロギング制御機器２００の処理の流れを説明するフローチャートである。ロギング制御機器２００は、まずパケットデータを時系列順にソートする（ステップＳＰ１）。次に、時刻などの補完情報を追加する（ステップＳＰ２）。続いて、インデックス情報などの管理情報を生成する（ステップＳＰ３）。そして、ストレージデバイスＩ/Ｆ１８から出力されたロギングデータに出力時間を追加して記録媒体に記録する（ステップＳＰ４）。また、記録と並行にロギングデータに含まれるインデックスと記録媒体の保存場所をセットにしたテーブルを作成してロギングデータとは別の場所に記録する。
【００４８】
図１０は、図７のプロセスＣにおける表示ソフトウェア３１０の処理の流れを説明するフローチャートである。デバッグ作業者の要求に基づき取得すべきデータを選択し（ステップＳＰ１）、選択されたロギングデータを読み込んだ後（ステップＳＰ２）、それら取得データをグラフィカルに表示する（ステップＳＰ３）。また、デバッグ作業者の指定条件をインデックス別にソートすることや時系列にソートすることもできる。
【００４９】
図１１は、図７のプロセスＤにおけるロギングデータ出力のＯＮ/ＯＦＦ制御の流れを説明するフローチャートである。はじめに、デバッグ作業者は、デバッガ３５０にロギングデータ出力のＯＮ/ＯＦＦを選択設定し（ステップＳＰ１）、続いてロギングデータ出力の種別を設定する（ステップＳＰ２）。次に、デバッガ３５０はＪＴＡＧ−ＩＣＥ４００およびＴＡＰコントローラ１１９を介してフック処理部１２３にロギングデータ出力のＯＮ/ＯＦＦ選択設定とロギングデータ出力の種別設定を通知する（ステップＳＰ３）。フック処理部１２３は、これらロギングデータ出力のＯＮ/ＯＦＦ選択設定とロギングデータ出力の種別設定を格納する（ステップＳＰ４）。
【００５０】
このようにしてフック処理部１２３に格納されたロギングデータ出力のＯＮ/ＯＦＦ選択設定とロギングデータ出力の種別設定に基づき、ロギングデータ出力のＯＮ/ＯＦＦ制御が行われる。
【００５１】
以上説明したように、本発明によれば、デバッグ専用ポートを有しないコンピュータシステムであっても、そのシステムを動作させるためのハードウェアを追加・改変することなく、ソフトウェアの障害解析に必要なロギングデータを外部記録媒体に記録して効率的かつ容易に取得することができ、ソフトウェアの障害解析に要する時間を短縮することができる。
【図面の簡単な説明】
【００５２】
【図１】本発明の第１実施形態による情報端末装置の要部構成を示すブロック図である。
【図２】図１のソフトウェア処理に関連した機能ブロック図である。
【図３】図２のプロセスＡにおけるフック処理部１２３の処理の流れを説明するフローチャートである。
【図４】図２のプロセスＢにおけるロギング制御機器２００の処理の流れを説明するフローチャートである。
【図５】図２のプロセスＣにおける表示ソフトウェア３１０の処理の流れを説明するフローチャートである。
【図６】本発明の第２実施形態によるソフトウェア解析システムの要部構成を示すブロック図である。
【図７】図６のソフトウェア処理に関連した機能ブロック図である。
【図８】図７のプロセスＡにおけるフック処理部１２３の処理の流れを説明するフローチャートである。
【図９】図７のプロセスＢにおけるロギング制御機器２００の処理の流れを説明するフローチャートである。
【図１０】図７のプロセスＣにおける表示ソフトウェア３１０の処理の流れを説明するフローチャートである。
【図１１】図７のプロセスＤにおけるロギングデータ出力制御処理の流れを説明するフローチャートである。
【図１２】従来のソフトウェア解析システムの一例を示す構成図である。
【符号の説明】
【００５３】
１００  デバッグ対象コンピュータシステム
１１８  ストレージデバイスＩ/Ｆ
１１９  ＴＡＰコントローラ
１２３  フック処理部
１２４  ストレージデバイス制御処理部
１４０  デバイス用スロット
１５０  ＴＡＰコントローラ用コネクタ
２００  ロギング制御機器
３００  解析用パーソナルコンピュータ（ＰＣ）
３５０  デバッガ
４００  ＪＴＡＧ−ＩＣＥ
【図１】
2010039884.tif 000003
【図２】
2010039884.tif 000004
【図３】
2010039884.tif 000005
【図４】
2010039884.tif 000006
【図５】
2010039884.tif 000007
【図６】
2010039884.tif 000008
【図７】
2010039884.tif 000009
【図８】
2010039884.tif 000010
【図９】
2010039884.tif 000011
【図１０】
2010039884.tif 000012
【図１１】
2010039884.tif 000013
【図１２】
2010039884.tif 000014