1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VS Code - z/OS連携 (8)AIエージェントの活用: 実践編

1
Last updated at Posted at 2026-05-23

はじめに

実線編ということで、IBM Bob + Z Open Editor:Agent mode を使用してどんなことができるかを見ていきたいと思います。
ここではとりあえずシンプルなシナリオを用いて具体的な利用イメージをつかむことを目的とします。

関連記事

VS Code - z/OS連携 (1)概要
VS Code - z/OS連携 (2)基本構成
VS Code - z/OS連携 (3)基本操作: ソース編集
VS Code - z/OS連携 (4)基本操作: JES操作など
VS Code - z/OS連携 (5)DBBユーザー・ビルド
VS Code - z/OS連携 (6)Advanced Capability
VS Code - z/OS連携 (7)AIエージェントの活用: 概要
VS Code - z/OS連携 (8)AIエージェントの活用: 実践編

実践編: IBM Bobを使ってみる

厳密に言うと IBM Bob は VS Code をベースにしてはいるものの、VS Code とは独立した別製品なのですが、まぁベースは一緒ということでここではIBM Bobを取り上げています。
先の記事で示した Z Open Editor の Advanced Capability に含まれる Agent Mode (MCPサーバー機能)と組み合わせることでどのようなことができるかを見ていきたいと思います。

ちなみに、AIエージェント機能で言えば VS Code の Extension として GitHub Copilot や Roo Code といった類似の機能もありますのでそちらを利用することも可能です。

全体像

image.png

当記事執筆時点(2026年5月時点)では、IBM Bobはインターネット接続が必須となっています(インターネッと経由でバックエンドのLLMを利用)。それ以外の構成(z/OSとの接続)については、関連記事で記載してきた内容と同様です。

将来的にはオンプレ版のIBM Bobも予定されているようです。
参考: IBM、エンタープライズ向けAI開発パートナー「IBM Bob」を発表:AI支援型コーディングから実運用可能なソフトウェアへ(2026年04月30日)

提供形態
IBM Bobは現在、SaaSとして一般提供されており、30日間の無償トライアルに加え、個人向けおよびエンタープライズ向けプランを用意しています。データ所在地や規制要件を持つ組織向けには、将来的にオンプレミスでの提供を予定しています。IBM Bobの詳細については、bob.ibm.com(英語)をご参照ください。

IBM Bob とは

参考:
エンタープライズ向けAIコーディング・エージェント
IBM Bobへようこそ

IBM Bob は VS Codeをベースとしたエンタープライズ向けのAI開発パートナーです。単なるコード補完ツールではなく、AIエージェントを利用して、要件整理・設計・実装・テスト・モダナイゼーション等開発ライフサイクルに関する多様なフェーズを支援することを目的としています。

ちなみにIBMさんは IBM Bob Premium Package for Z という製品も発表しています。
Introducing the IBM Bob Premium Package for Z private preview(2026年4月28日)

これは、メインフレーム(z/OS)アプリケーション向けの支援機能を強化したIBM Bobの拡張パッケージです。
当記事執筆時点(2026年5月)ではまだ正式リリース前の段階であるため、当記事ではベースのIBM Bobを使用して試しています。

構成

IBM Bobのインストール

IBM Bob は 基本的に有償の独立した製品であるため、アカウントを作成してプランを契約する必要があります。
※無料のTrialプランもあります。

IBM Bob - 料金

その上で、IBM Bob をインストール、セットアップしておく必要があります。 AIエージェントがバックエンドで基盤モデルを呼び出すことになるので、インターネット接続も必要になります。
以下の手順に従ってIBM Bobのセットアップを行います。

IBM Bob - インストール

z/OS連携用構成

参考:
Z Open Editor - Advanced Capability - Agent Mode
IBM Z Open Editor MCP Tools

ここでは、Z Open Editor の Advanced Capability に含まれる Agent Mode (MCPサーバー機能)を利用することとします。この構成を行うことにより、これまでの記事で紹介してきた Zowe Explorer + Z Open Editor で提供される機能を、IBM Bobのエージェントから利用しやすくなります。

Advanced Capabilityの有効化

IBM BobのベースはVS Codeと同様ですので、Zowe Explorer Extension、Z Open Editor Extension のインストールやセットアップ、Advanced Capabilityを有効化は、先の記事で示した内容に従って実施してください。
※ここではAdvanced CapabilityのAgent Modeを使う想定なので、IDz EE (IBM Developer for z/OS Enterprise Edition)、もしくは、ADFz (IBM Application Delivery Foundation for z/OS)のライセンスがあることが前提となります。

MCPサーバーの有効化

Z Open Editorの設定として「Mcp: Enabled」にチェックを入れます。
image.png

settings.jsonファイルで言うと、以下の設定になります。

settings.json
...
"zopeneditor.mcp.enabled": true,
...

次に、MCPサーバーの設定ファイル.bob\mcp.jsonを作成し、Z Open EditorのMCPサーバーの構成情報を記述します。

mcp.json例
{
    "mcpServers": {
        "zopeneditor-mcp": {
            "url": "http://localhost:3015/mcp",
            "type": "streamable-http",
            "timeout": 600
        }
    }
}

MCPサーバーはローカルで稼働することになります。MCPサーバーをワークスペース単位で構成する場合、MCPサーバーの名前はバッティングしないように、zopeneditor-ではじまるユニークな名前にする必要があります(上の例だとzopeneditor-mcp)。また、ポート番号も他とバッティングしないユニークな番号にしておく必要があります(上の例だと3015)。

mcp.jsonを作成したら、IBM Bobを再起動 or ウィンドウの再読み込みを行います。

BOB Viewの右上の"設定"アイコンをクリックしてBobの設定画面を開きます。
image.png

Bobの設定画面でMCPを選択します。上で定義したMCPサーバーzopeneditor-mcpが表示されていることを確認します。接続エラーを示す赤いシグナルが表示されている場合、zopeneditor-mcpのタイルをクリックします。
image.png

zopeneditor-mcpの詳細画面が開くので、右上の"サーバーを再起動"アイコンをクリックします。
image.png

ツールのリストが表示されればOKです(MCPサーバーに接続して使用可能なツールの一覧が取得できたということ。
image.png

前の画面に戻るとグリーンシグナルになっていると思います。
image.png

ちなみに、BobがZ Open Editorを起動したときにワークスペースの情報を読み込んでMCPサーバーの定義が検知されると自動で起動します。以下、Bobでワークスペースを開いた時の"IBM Z Open Editor MCP"のログ出力例です。
image.png

これでエージェントからZ Open EditorのMCPサーバーを使えるようになりました。
これはすなわち、エージェントに何か指示を与えた場合に、必要であれば、z/OS上のデータセットを参照したり、JCLをサブミットしたり、DBBユーザービルドする、ということを自律的に判断して実行することができるようになった、ということを意味します。

使用例1: Git管理されているCOBOLアプリケーションのメンテナンス

シンプルなCOBOLアプリケーションのサンプルを含むGit Repositryがあり、それをクローンしてBobでメンテナンスする、というケースを考えてみます。
先のDBBユーザー・ビルドの記事で示した構成を想定しています。

ここでは以下のリポジトリで提供されるCOBOLのサンプルソース(SAM1, SAM2)が含まれるリポジトリを扱うことにします。
https://github.com/IBM/zopeneditor-sample

シナリオ1-(1)仕様書生成

Git Repositoryに含まれるCOBOLソースを修正する必要があるシチュエーションを考えます。
実際のケースに照らし合わせて考えると、例えば関連ドキュメントは存在するものの、古くて実際のコードと整合性がとれていなかったり、一部のドキュメントは紛失してしまったりしている、ということもよく聞きます。
ですので、ソース改修にあたり、まずは現行のソースコードを解析してその実装内容を理解したいということがあると思います。
そのようなケースを想定して、COBOLソースコードから処理内容を説明する仕様書を生成させる、ということをBobにやらせてみます。

事前準備(AGENTS.md)

Bobでは、プロジェクト全般的に適用できる共通ルールのような情報は、ファイルとして事前に記述しておくことができます。そうすることで、逐一同じような指示を与えなくてもプロジェクトとしての標準化が図れます。

参考: AGENTS.mdファイルの使用

ここではAGENTS.mdというファイルを作成して、共通ルール、前提などを記述しておきます。例えば、こんな感じの記述をしておきます。

AGENTS.md
# 概要
- 当プロジェクトは、VS Codeを使用してCOBOLアプリケーションのメンテナンスを行うためのものです。
- z/OS関連の操作を行う場合は、zopeneditor-mcpを使用します。
- zowe.config.jsonには、検証に使用可能なz/OSテスト環境への接続情報が含まれています。
- 指定がなければ、.vscode/setting.jsonファイルのzopeneditor.zowe.defaultCliProfileに指定されているプロファイルを使用してz/OSに接続します。

## 仕様書生成
- 仕様書はSpecificationディレクトリ以下に、Markdown形式で生成します。
- 仕様書は基本的には1ソースに対して1つの仕様書を生成するようにします。
- 必要に応じてzopeneditor-mcpのツールを使用してソースの構造を理解します。
- COPYBOOKの仕様書は不要です。
- 複数プログラムに関する仕様書は各プログラムの仕様書とは別ファイルとします。
- パフォーマンス等の非機能についての情報、および、テストについての情報は不要です。純粋に機能的観点で記載してください。

※厳密にコントロールしたい場合は、より細かいルールや仕様書のテンプレートになるファイルを用意しておくなど追加の準備が必要になります。ここでは利用イメージをつかむためシンプルなルールのみを指定しています。

実行

さて、それでは実際に仕様書生成の指示を与えてみます。

関連するソースとCOPYBOOKはこんな感じです。
image.png

Bob Viewで、以下のような指示を与えてみます。まず計画を立てさせてから実行するため、Planモードを選択しておきます。

指示文の例
COBOLディレクトリ配下の各プログラムの仕様書を作成してください。また、簡単なプログラム間の関係性を図示してください。

image.png

MCPサーバーのツール経由でプログラム制御フローを確認しようとしていますので承認します。(SAM1, SAM2それぞれツール利用)
image.png

以下のようなTo Doリストが作成されました。
image.png

To Doリストに従って仕様書を作成していきます。
image.png

最終的に、SAM1, SAM2それぞれの仕様書と、プログラム関係図が作成されました。
image.png

シナリオ1-(2)コード修正

最近、エンタープライズ向けの開発プロセスとしては、"仕様駆動開発"、すなわち、"仕様"を明確に定義してその"仕様"を元に設計、実装、テストなど開発サイクルを回していくという考え方が注目されています。IBM Bobが狙っているところも同様です。
コード修正を行うにしても、まずは上で作成した仕様書を修正して、その仕様書に基づいてコードを修正していく、というのが理想的な流れになるかと思います。
ですが、今回はイメージを掴むために、できるだけシンプルな形で自然言語による簡単な指示を与えてCOBOLソースを改修するシナリオを試してみます。

Planモードにて、以下の指示を与えてみます。

指示文の例
@/COBOL/SAM2.cbl の各パラグラフの先頭と末尾に、デバッグコードとしてDISPLAY文を挿入してください。

image.png

対象のソースの構造を確認して、ToDoリストが作成されました。
image.png

以下のような修正案が提案されました。
image.png
image.png

このままでよいので、「この計画で進めてください」を選択して継続支持を出します。
image.png

Codeモードに変更され、計画に基づいてコードの修正が行われます。
image.png

修正完了です。
image.png

シナリオ1-(3)ビルド

IBM Bobでは、特定の定型的な指示を"コマンド"として定義しておくことで容易に実行させることができる仕組みが容易されています。
参考: カスタムコマンドの作成
ここでは、COBOLプログラムのビルド(コンパイル/リンク)処理をIBM Bobのカスタムコマンドとして定義し、実行してみたいと思います。なお、実際のビルドはDBBユーザービルドにより処理することを想定します(DBBユーザービルドのための構成は実施済の想定)。

事前準備(カスタムコマンド)

.bob\commands\フォルダ以下に、cob_user_build.mdというMarkdownファイルを作成します。このファイル名がコマンド名として認識されます。

.bob\commands\cob_user_build.md
---
description: z/OS上でCOBOLプログラムをビルドする
---

# Build Command

このコマンドは、指定されたCOBOLプログラムをz/OS上でビルドします。
z/OSに対するオペレーションはzopeneditor-mcpを使用します。

## 実行内容

1. 指定されたプログラムについてフルアップロードでUser Buildを実行します。
2. ダウンロードされたビルド結果、および、コンパイル、リンクエディットのログを確認します。
3. エラーが含まれる場合はエラー内容、および、解決案を提示します。

## 使用方法

/cob_user_build [プログラム名] 

実行

MCPを使用してユーザービルドを実行することになるので、Advancedモードで実行します。

Bob viewの入力エリアに/(スラッシュ)を入力すると、コマンドのリストが表示されるので、"/cob_user_build"を選択します。
image.png

コマンドに続けて引数としてビルドしたいソースを指定して実行します。
image.png

コマンドに紐づくMarkdownの指示に従ってビルド処理が行われます。ここでは、期待通りMCPのDBBユーザービルド用のツール使用が選択されています。
image.png

ビルドが完了しました。
image.png

ビルドに失敗した場合は、エラーの状況やログなどの情報を元に、原因特定や解決策提示などでAIエージェントを活用することもできます。

使用例2: z/OS上のCOBOLアプリケーションのメンテナンス

オープン系のシステムでは、使用例1で示したシナリオのように、アプリケーションのソースはGitで管理されていてPC上にクローンを作成してメンテナンスする、というのが自然な形態になろうかと思われます。AIエージェントもこのような形態で管理を行うことを想定して各種機能が提供されていますので、メインフレームのアプリケーションもこのような形態に倣うことでAIエージェントを活用しやすくなる、と言えます。
逆に言えば、メインフレームのアプリケーション開発サイクルにおいてAIエージェントをより効果的に活用するためには、アプリケーションのソースはGitで管理するよう変革していくべきであろうと思います。
とはいえ、現実的にはGitに移行するには大きなハードルがあることも多いため、z/OS上に各リソースが存在している(Gitは使用していない)という前提で、上の「使用例1」と同じシナリオをAIエージェントを使ってどのように実行できるか、というのを試してみたいと思います。

シナリオ2-(1)仕様書生成

z/OS上に、COBOLソース、および、COPYBOOKを配置しておきます。
image.png

COPYBOOKの探索パスをzapp.yamlファイルに追記しておきます。

zapp.yaml
...
propertyGroups:
  - name: cobol-copybooks
    language: cobol
    libraries:
      - name: syslib
        type: mvs
        locations:
          - DEV01.TEST01.COPY
...

一時ファイル保持用にtempディレクトリを作成しておき、Planモードで以下の指示を与えてみます。

指示文の例
z/OS上のDEV01.TEST01.COBOLデータセット配下の各プログラムの仕様書を作成してください。また、簡単なプログラム間の関係性を図示してください。
なお、ローカルに一時ファイルを作成する必要がある場合は、tempディレクトリ以下を使用してください。

MCP経由でソース、および、COPYBOOKがダウンロードされ、ToDoリストが作成されました。
image.png

より詳細な仕様書の計画が提示されたので、そのまま進めます。
image.png

最終的に、SAM1, SAM2それぞれの仕様書と、プログラム関係図が作成されました。
image.png

シナリオ2-(2)コード修正

z/OS上のPDSメンバーDEV01.TEST01.COBOL(SAM2)のコードを修正させてみます。

Planモードにて、以下の指示を与えてみます。

指示文の例
z/OS上のDEV01.TEST01.COBOL(SAM2)の各パラグラフの先頭と末尾に、デバッグコードとしてDISPLAY文を挿入してください。
なお、ローカルに一時ファイルを作成する必要がある場合は、tempディレクトリ以下を使用してください。

SAM2についてMCP経由で情報収集がされました。
image.png

ToDoリストが作成されました。
image.png

修正案が提案されたのでそのまま進めます。
image.png

Advancedモードに変更され、計画に基づいてダウンロードされたソースのコード修正が行われます。
image.png

変更されたソースがアップロードされ、タスクが完了しました。
image.png

シナリオ2-(3)ビルド

DBBユーザービルドは、VS CodeのZ Open Editorから実行するだけでなく、USS上でスクリプトをキックすることもできます。ただ、その場合USS上にソースや関連ファイルを転送する必要があり、それらを手動で実行するのはあまりスマートではありません。

ここでは、DBBは使わずに旧来からの方法としてよく使用されているJCLにてコンパイル/リンクを行うということをやらせてみます。雛形となる汎用的なJCLを用意しておき、それを使ってコンパイル/リンクを実行させてみます。

例えば、以下のようなCOBOLのコンパイル/リンク用JCLテンプレートを用意しておきます。

DEV01.TEST01.JCL(COBCL)
//COBCL   JOB (ACCT),'COBOL COMPILE',CLASS=A,MSGCLASS=H,
//         NOTIFY=&SYSUID,REGION=0M
//*
//* COBOL Compile, Link and Run JCL Template
//*
//         SET MEMBER=xxxxxxxx
//         SET COBOLHLQ=IGY.V6R5M0
//         SET CEEHLQ=CEE
//         SET WORKHLQ=DEV01.TEST01
//         SET CPARM='LIB,OBJECT,LIST,MAP,XREF,RENT'
//         SET LPARM='MAP,RENT,LIST,XREF'
//*
//********************************************************************
//* Step 1: COBOL Compile
//********************************************************************
//COMPILE  EXEC PGM=IGYCRCTL,
//         PARM='&CPARM'
//STEPLIB  DD DSN=&COBOLHLQ..SIGYCOMP,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN    DD DSN=&WORKHLQ..COBOL(&MEMBER),DISP=SHR
//SYSLIN   DD DSN=&WORKHLQ..OBJ(&MEMBER),DISP=SHR
//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT2   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT3   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT4   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT5   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT6   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT7   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT8   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT9   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT10  DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT11  DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT12  DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT13  DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT14  DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT15  DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSMDECK DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSLIB   DD DSN=&WORKHLQ..COPY,DISP=SHR
//*
//********************************************************************
//* Step 2: Link Edit
//********************************************************************
//LKED     EXEC PGM=IEWBLINK,
//         PARM='&LPARM',
//         COND=(4,LT,COMPILE)
//SYSPRINT DD SYSOUT=*
//SYSLIN   DD DSN=&WORKHLQ..OBJ(&MEMBER),DISP=SHR
//SYSLMOD  DD DSN=&WORKHLQ..LOAD(&MEMBER),DISP=SHR
//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSLIB   DD DSN=&WORKHLQ..OBJ,DISP=SHR
//         DD DSN=&CEEHLQ..SCEELKED,DISP=SHR
//*

上で改修したDEV01.TEST01.COBOL(SAM2)をビルドするために、Planモードで以下の指示を与えてみます。

指示文の例
z/OS上のCOBOLソースDEV01.TEST01.COBOL(SAM2)を、コンパイル、リンク/エディットするJCLをDEV01.TEST01.JCL(TSAM2)として作成してください。JCL作成時にはDEV01.TEST01.COBOL(COBCL)をテンプレートとして改修して使用してください。
また、作成したJCLをサブミットし、結果を確認してください。

MCPを使用して必要な情報の収集が開始されました。
image.png

ソース、COPYBOOK、JCLテンプレート、出力先データセットなどを一通り確認し、ToDoリストが作成されました。
image.png

詳細な計画を確認し、そのまま進めます。
image.png

JCLがテンプレートから作成されてアップロードされました。
image.png

JCLがSubmitされ、結果を確認しています。
image.png
image.png
image.png
image.png
image.png
image.png

ビルド用のタスク(JCL作成/Submit)が完了しました。
image.png

まとめ

Z Open Editor の Advanced Capability で提供される Agent Mode(MCPサーバー機能)を使用することで、IBM Bob(AIエージェント)とz/OSがどのように連携できるか具体的に試してみました。
z/OS関連操作を含むアプリケーション開発プロセスにおけるAIエージェント活用のイメージがなんとなく理解いただけたのではないでしょうか。

一応Git無しの状況(z/OS上にソースが管理されている状況)でもある程度の操作をAIエージェントから行えることはわかりました。ただ、やはりリモート上のリソースを扱うのは1クッション挟むことになるので細かいところで融通が利きにくくなりそうです。例えば上の例ではz/OS上のソースやJCLを編集する操作が含まれますが、MCP経由で実行する場合その操作は以下のステップを踏むことになります。

  1. 対象ファイルのダウンロード
  2. ローカルでファイルを編集
  3. 編集したファイルのアップロード

VS CodeのZowe Explorer経由でz/OS上のデータセットを開いて編集して保存する場合、内部的には同じ操作が行われていますが、それをMCPのツールとして個別に実施することになる、という訳です。そのため、ローカルでの一時的なワーク用ディレクトリやそのごみ掃除なども考慮しなければいけないかもしれません。
特に大規模/複雑になりがちなメインフレームアプリケーションだと、その辺りの管理もより煩雑になりそうです。
既存のソース管理の運用とどのように関係するのかも気になる所です。

Git管理の場合、基本的にはリポジトリの単位で管理が行われ、ローカルにクローンしたものを扱うということでAIエージェントに限らずVS Codeベースのツールとの相性はよく、一般的に広く使用されている拡張機能も利用しやすく、活用の幅はだいぶ広がるものと考えられます。(ただし、先にも示したようにGitに移行するのはそれなりにハードルが高い作業にはなるのですが。)
スモール・スタートでどの程度AIエージェントが活用できそうかをまず見極めるというところでは、z/OS上にあるものを扱う前提で考えるのもアリかもしれませんが、本格的にAIエージェントの活用を想定するのであれば、やはりGit管理というのは前提になってくるであろうと考えます。

ここで示した例は、AIエージェント活用の流れを理解するためにできるだけシンプルなケースで試していましたが、現実的には様々な制約や要件が絡み合うと思いますので、前提条件や補足情報の充足、成果物を標準化するためのテンプレートの使用、処理結果の精度を高めるための指示の明確化などを含め、創意工夫/試行錯誤が必要になると思います。
この辺りを補填してくれるであろう ALSEA というソリューションも発表されており、今後提供される予定となっています。
参考: 日本IBM、エンタープライズ向け仕様駆動開発のためのコンテキスト標準ソリューション「AI Lifecycle Shared Engineering Artifacts:ALSEA」を開発(2026年04月14日)

◾️エンタープライズ向け仕様駆動のためのコンテキスト標準ソリューション「ALSEA」
日本IBMは長年にわたり蓄積してきた大規模システム開発のメソッドやノウハウ、標準プロセス、成果物テンプレート、ルール、ガイドを、IBM Bobが理解・活用可能な「コンテキスト」として体系化し、エンタープライズ向け仕様駆動開発のための標準基盤としてALSEAを開発しました。開発に必要な標準的なコンテキストをALSEAとして提供することで、AIを組織として正しく動かし、大規模プロジェクトにおいても全面的にAIが主体となり、人は設計・監督に集中する開発を可能にします。

また、今後メインフレーム向け支援機能を強化した拡張パッケージとして IBM Bob Premium Package for Z の提供も予定されています。
参考: Introducing the IBM Bob Premium Package for Z private preview(2026年4月28日)

機会があればこの辺りも試していければと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?