changeset 41:34a474fb83c3

add perori/porori/nk.
author pyon@macmini
date Wed, 04 Mar 2020 23:46:59 +0900
parents c6df3bae683e
children c58172a59534
files src/kaigo/Nk/README.txt src/kaigo/Nk/fw4.pl src/kaigo/Nk/nk.go src/kaigo/Nk/nk.json src/kaigo/Nk/xdw_api.h src/kaigo/Nk/xdwapi.lib src/kaigo/Nk/xdwapian.h src/kaigo/Nk/超5.bat src/kaigo/Perori/Perori.bat src/kaigo/Perori/addtoday.go src/kaigo/Perori/bk.go src/kaigo/Perori/export.mdb src/kaigo/Perori/make.bat src/kaigo/Perori/manual.docx src/kaigo/Perori/perori.go src/kaigo/Perori/xdw_api.h src/kaigo/Perori/xdwapi.lib src/kaigo/Perori/xdwapian.h src/kaigo/Porori/Makefile src/kaigo/Porori/Nintei.fbp src/kaigo/Porori/Porori.bat src/kaigo/Porori/a.csv src/kaigo/Porori/export.mdb src/kaigo/Porori/image/sample.ico src/kaigo/Porori/image/sample.rc src/kaigo/Porori/image/sample.xpm src/kaigo/Porori/include/main.h src/kaigo/Porori/include/porori.h src/kaigo/Porori/make.bat src/kaigo/Porori/nintei.csv src/kaigo/Porori/porori.json src/kaigo/Porori/src/main.cpp src/kaigo/Porori/src/porori.cpp src/kaigo/Porori/src2/porori.go src/kaigo/Porori/src2/porori.pl
diffstat 35 files changed, 6172 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Nk/README.txt	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,31 @@
+*****************************************************************************
+*  ”F’è‚È‚ç‚Ñ‚©‚¦(’ÊÌ:’´‚T)                                                *
+*****************************************************************************
+
+1) ƒtƒ@ƒCƒ‹‚Ì€”õ‚ð‚µ‚ÄB
+ a> ”í•ÛŒ¯ŽÒØ‚Ì Docuworksƒtƒ@ƒCƒ‹‚ð inputƒtƒHƒ‹ƒ_‚ɓЂ°ž‚ñ‚Å‚ËB
+    ƒtƒ@ƒCƒ‹–¼FKBPG316G.xdwAKBPG316G-1.xdwA...“™
+
+ b> Œ‹‰Ê’Ê’m‚Ì Docuworksƒtƒ@ƒCƒ‹‚ð inputƒtƒHƒ‹ƒ_‚ɓЂ°ž‚ñ‚Å‚ËB
+    ƒtƒ@ƒCƒ‹–¼FKBPG206G.xdwAKBPG206G-1.xdwA...“™
+                KBPG706G.xdwAKBPG706G-1.xdwA...“™
+
+ c> •‰’SŠ„‡Ø‚Ì Docuworksƒtƒ@ƒCƒ‹‚ð inputƒtƒHƒ‹ƒ_‚ɓЂ°ž‚ñ‚Å‚ËB
+    ƒtƒ@ƒCƒ‹–¼FKBPV016G.xdwAKBPV016G-1.xdwA...“™
+
+2) ’´‚T.bat ‚ðƒJƒ`ƒJƒ`‚·‚邯 ”­”Ô‚ð•·‚¢‚Ä‚­‚é‚̂Š555 ‚Æ‚©“ü—Í‚·‚éB
+   ‚ÆAoutputƒtƒHƒ‹ƒ_‚É 3‚Â‚Ì Docuworksƒtƒ@ƒCƒ‹ ‚Æ 1‚Â‚Ì PDFƒtƒ@ƒCƒ‹A
+   ‚»‚ê‚É 1‚Â‚Ì CSV ƒtƒ@ƒCƒ‹‚ª‚Å‚«‚邿B
+
+    * hs.xdw			-> ”í•ÛØ
+    * kt.xdw			-> Œ‹‰Ê’Ê’m
+    * fw.xdw			-> •‰’SŠ„‡Ø(ˆóü‚µ‚È‚¢)
+    * fw4.pdf			-> •‰’SŠ„‡Ø 4l1‘g”Å
+    * out.csv			-> ˆê——
+
+0) ‚»‚Ì‘¼
+    * ”í•ÛŒ¯ŽÒî•ñƒtƒ@ƒCƒ‹ hhsdb.csv ‚Í’èŠú“I‚ÉXV‚·‚邱‚ÆB
+    * ‹‘î‰îŒìŽx‰‡Ž–‹ÆŠ‚ªV‹K‚ɂł«‚½‚èA–¼‘O‚ª•Ï‚í‚Á‚½ê‡‚ÍAnk.json ‚ð
+      •ÒW‚·‚邱‚ÆB
+
+**** ‚¨‚µ‚Ü‚¢ ***************************************************************
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Nk/fw4.pl	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,115 @@
+###########################################################
+## 入力ファイルを 4分割割付ã™ã‚‹
+##                   Last Change: 2020-01-21 ç« 14:34:27.
+###########################################################
+
+use PDF::API2;
+
+my ($in_file, $out_file) = ($ARGV[0], $ARGV[1]);
+if ($in_file eq '' || $out_file eq '') {
+	print "bad arguments.\n";
+	exit;
+}
+my $tmpdir = $ARGV[2];
+$tmpdir = '.' if $tmpdir eq '';
+
+## 入力ファイルã®å¾ŒåŠã‚’上下å転ã•ã› å‰åŠã®ä¸‹éƒ¨ã«å°å­—
+my $in_odd = 0;	# 奇数?
+
+# 後åŠã®ãƒšãƒ¼ã‚¸(回転付ã)
+my $in_pdf = PDF::API2->open($in_file);
+$in_odd = 1 if $in_pdf->pages % 2 == 1;
+
+my $n = int($in_pdf->pages / 2) + 1;
+$n++ if $in_odd;
+my $lh_pdf = PDF::API2->new();
+for my $p ( $n..$in_pdf->pages ) {
+	my $page = $lh_pdf->import_page($in_pdf, $p);
+	$page->rotate(180);
+}
+$lh_pdf->saveas("$tmpdir/lasthalf.pdf");
+$lh_pdf->end;
+
+# 移動
+$lh_pdf = PDF::API2->open("$tmpdir/lasthalf.pdf");
+my $lhm_pdf = PDF::API2->new();
+for my $p ( 1..$lh_pdf->pages ) {
+	my $page = $lhm_pdf->page();
+	$page->mediabox('B5');
+	my $gfx = $page->gfx();
+	my $xo = $lhm_pdf->importPageIntoForm($lh_pdf, $p);
+	$gfx->formimage($xo, -230, 330, 1.0);
+}
+$lhm_pdf->saveas("$tmpdir/lasthalfmove.pdf");
+$lhm_pdf->end;
+
+# 割付
+my $page;
+my $new2_pdf = PDF::API2->new();
+$lhm_pdf = PDF::API2->open("$tmpdir/lasthalfmove.pdf");
+for my $p ( 1..$n-1 ) {
+	$page = $new2_pdf->page();
+	$page->mediabox('B5');
+
+	my $gfx = $page->gfx();
+	my $xo1 = $new2_pdf->importPageIntoForm($in_pdf, $p);
+	$gfx->formimage($xo1, -30, 0, 1.0);
+
+	last if $p == $n-1 && $in_odd;
+	my $xo2 = $new2_pdf->importPageIntoForm($lhm_pdf, $p);
+	$gfx->formimage($xo2, 0, -350, 1.0);
+}
+
+$new2_pdf->saveas("$tmpdir/2.pdf");
+$new2_pdf->end;
+
+## 入力ファイルã®å¾ŒåŠã‚’å‰åŠã®å³å´ã«å°å­—
+$in_odd = 0;	# 奇数?
+
+# 後åŠã®ãƒšãƒ¼ã‚¸(回転ãªã—)
+$in_pdf = PDF::API2->open("$tmpdir/2.pdf");
+$in_odd = 1 if $in_pdf->pages % 2 == 1;
+
+$n = int($in_pdf->pages / 2) + 1;
+$n++ if $in_odd;
+$lh_pdf = PDF::API2->new();
+for my $p ( $n..$in_pdf->pages ) {
+	my $page = $lh_pdf->import_page($in_pdf, $p);
+	#$page->rotate(180);
+}
+$lh_pdf->saveas("$tmpdir/lasthalf2.pdf");
+$lh_pdf->end;
+
+# 移動
+$lh_pdf = PDF::API2->open("$tmpdir/lasthalf2.pdf");
+$lhm_pdf = PDF::API2->new();
+for my $p ( 1..$lh_pdf->pages ) {
+	my $page = $lhm_pdf->page();
+	$page->mediabox('B5');
+	my $gfx = $page->gfx();
+	my $xo = $lhm_pdf->importPageIntoForm($lh_pdf, $p);
+	$gfx->formimage($xo, 130, 0, 1.0);
+}
+$lhm_pdf->saveas("$tmpdir/lasthalf2move.pdf");
+$lhm_pdf->end;
+
+# 割付
+my $new4_pdf = PDF::API2->new();
+$lhm_pdf = PDF::API2->open("$tmpdir/lasthalf2move.pdf");
+for my $p ( 1..$n-1 ) {
+	$page = $new4_pdf->page();
+	$page->mediabox('B5');
+
+	my $gfx = $page->gfx();
+	my $xo1 = $new4_pdf->importPageIntoForm($in_pdf, $p);
+	$gfx->formimage($xo1, 0, 0, 0.98);
+
+	last if $p == $n-1 && $in_odd;
+	my $xo2 = $new4_pdf->importPageIntoForm($lhm_pdf, $p);
+	$gfx->formimage($xo2, 125, 0, 0.98);
+	#$gfx->formimage($xo2, 122, 0, 0.98);
+}
+
+$new4_pdf->saveas($out_file);
+$new4_pdf->end;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Nk/nk.go	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,795 @@
+/*
+ nk.go: Nintei Kekka
+
+ Last Change: 2020-01-24 金 09:18:04.
+*/
+
+package main
+
+/*
+#cgo LDFLAGS: -L. -lxdwapi -static
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <io.h>
+#include <windows.h>
+#include <xdw_api.h>
+#include <xdwapian.h>
+
+#define MAXCOL  1024
+#define MAXLINE 9999
+#define BLOCKSZ  128
+
+int xdwpages(const char* file) {
+	char in_path[_MAX_PATH];
+    _fullpath(in_path, file, _MAX_PATH);
+
+	XDW_DOCUMENT_HANDLE h = NULL; // 文書ãƒãƒ³ãƒ‰ãƒ«ã‚’é–‹ã
+	XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE};
+	if (XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode)) {
+		printf("Error: cannot open %s\n", file);
+		return -1;
+	}
+
+	XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; // ç·ãƒšãƒ¼ã‚¸æ•°ã‚’å¾—ã‚‹
+	XDW_GetDocumentInformation(h, &info);
+    int nPage = info.nPages;
+
+	XDW_CloseDocumentHandle(h, NULL); // 文書ãƒãƒ³ãƒ‰ãƒ«ã‚’é–‰ã˜ã‚‹
+
+    return nPage;
+}
+
+char* xdw2txt(const char* file) {
+	char in_path[_MAX_PATH];
+    _fullpath(in_path, file, _MAX_PATH);
+
+	XDW_DOCUMENT_HANDLE h = NULL; // 文書ãƒãƒ³ãƒ‰ãƒ«ã‚’é–‹ã
+	XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE};
+	if (XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode)) {
+		printf("Error: cannot open %s\n", file);
+		return NULL;
+	}
+
+	XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; // ç·ãƒšãƒ¼ã‚¸æ•°ã‚’å¾—ã‚‹
+	XDW_GetDocumentInformation(h, &info);
+    int nPage = info.nPages;
+
+    // メイン処ç†
+    char *lpszvalue, *all_lpszvalue;
+	long datasize[9999];
+    for (int i=1; i<=nPage; i++) {
+		datasize[i] = XDW_GetPageTextToMemory(h, i, NULL, 0, NULL);
+		datasize[0] += datasize[i];
+    }
+	datasize[0] += nPage - 1;	// for "\n"
+	all_lpszvalue = (char*)malloc(sizeof(char)*datasize[0]);
+	all_lpszvalue[0] = '\0';
+    for (int i=1; i<=nPage; i++) {
+		if (i<nPage) datasize[i]++;	// for "\n"
+        lpszvalue = (char*)malloc(sizeof(char)*(datasize[i]));
+        XDW_GetPageTextToMemory(h, i, lpszvalue, datasize[i], NULL);
+		strcat(all_lpszvalue, lpszvalue);
+		if (i<nPage) strcat(all_lpszvalue, "\n");
+        free(lpszvalue);
+    }
+
+	XDW_CloseDocumentHandle(h, NULL); // 文書ãƒãƒ³ãƒ‰ãƒ«ã‚’é–‰ã˜ã‚‹
+	return all_lpszvalue;
+}
+
+int xdwpush(const char* file1, const char* file2) {
+	char in_path[_MAX_PATH], add_path[_MAX_PATH];
+	_fullpath(in_path,  file1, _MAX_PATH);
+	_fullpath(add_path, file2, _MAX_PATH);
+
+	XDW_DOCUMENT_HANDLE h = NULL;
+	XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE};
+
+	int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
+	if (api_result < 0) return api_result;
+
+	XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
+	XDW_GetDocumentInformation(h, &info);
+	int last_page = info.nPages;
+
+	api_result = XDW_InsertDocument(h, last_page+1, add_path, NULL);
+	if (api_result < 0) api_result;
+
+	XDW_SaveDocument(h, NULL);
+	XDW_CloseDocumentHandle(h, NULL);
+
+	return (api_result >= 0);
+}
+
+int xdwaddatn(const char* file, char* atnlist) {
+	char in_path[_MAX_PATH];
+	_fullpath(in_path, file, _MAX_PATH);
+
+	XDW_DOCUMENT_HANDLE h = NULL;
+	XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE};
+
+	int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
+	if (api_result < 0) return api_result;
+
+	XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
+	XDW_GetDocumentInformation(h, &info);
+
+	char *str, *token;
+	char *saveptr1, *saveptr2;
+	int x, y, sz, tr;
+	char *s;
+
+	for (str = atnlist; ; str = NULL) {
+		token = strtok_r(str, ":", &saveptr1);
+		if (token == NULL) break;
+		//printf("%s\n", token);
+
+		// atn.X, atn.Y, atn.Sz, tr, atn.Txt
+		x  = atoi(strtok_r(token, ",", &saveptr2));
+		y  = atoi(strtok_r(NULL , ",", &saveptr2));
+		sz = atoi(strtok_r(NULL,  ",", &saveptr2));
+		tr = atoi(strtok_r(NULL,  ",", &saveptr2));
+		s  =      strtok_r(NULL,  ",", &saveptr2);
+		//printf("x=%d y=%d txt=%s sz=%d tr=%d\n", x, y, s, sz, tr);	
+
+		for (int i = 0; i < info.nPages; i++ ) {
+			XDW_ANNOTATION_HANDLE annoation;
+			int api_result = XDW_AddAnnotation(h, XDW_AID_TEXT, i + 1, x, y, NULL, &annoation, NULL);
+
+			if (api_result < 0) return api_result;
+
+			api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_Text, XDW_ATYPE_STRING, s, 0, NULL);
+			api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_FontSize, XDW_ATYPE_INT, (char*)&sz, 0, NULL);
+
+			if (tr) {
+				int color = XDW_COLOR_NONE;
+				api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_BackColor, XDW_ATYPE_INT, (char*)&color, 0, NULL);
+			}
+		}
+	}
+
+	XDW_SaveDocument(h, NULL);
+	XDW_CloseDocumentHandle(h, NULL);
+
+	return 0;
+}
+
+int xdwsort(const char* file, const char* sorted, const char* order, const char* workdir, const char* prefix) {
+	char buf[MAXCOL];
+
+	// メモリ確ä¿
+	char *sl = (char*)malloc(MAXLINE * sizeof(char) * MAXCOL);
+	if (sl == NULL) return -1;
+
+	int slN = 0;
+	char *p;
+	p = strtok(order, ":");
+	strncpy(&sl[slN * MAXCOL], p, MAXCOL);
+	slN++;
+
+	while (p = strtok(NULL, ":")) {
+		strncpy(&sl[slN * MAXCOL], p, MAXCOL);
+		slN++;
+	}
+
+	//for (int j = 0; j < slN; j++) printf("%d : %s\n", j, &sl[j * MAXCOL]);
+	//return 0;
+
+	// é‡ã¿ä»˜ã‘ = 並ã³é †
+	char in_path[_MAX_PATH];
+	_fullpath(in_path, file, _MAX_PATH);
+
+	XDW_DOCUMENT_HANDLE h = NULL;
+	XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE};
+
+	int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
+	if (api_result < 0) return api_result;
+
+	XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
+	XDW_GetDocumentInformation(h, &info);
+	int last_page = info.nPages;
+
+	int *table = (int*)malloc(sizeof(int) * last_page);
+	for (int p = 0; p < last_page; p++) *(table + p) = 9999;
+
+	int index = 0;
+	XDW_FOUND_HANDLE pFoundHandle = NULL;
+	for (int i = 0; i < slN; i++) {
+		for (int p = 0; p < last_page; p++) {
+			if (*(table + p) != 9999) continue;
+
+			api_result = XDW_FindTextInPage(h, p + 1, &sl[i * MAXCOL], NULL, &pFoundHandle, NULL);
+			if (api_result < 0) return api_result;
+
+			if (pFoundHandle != NULL) {
+				*(table + p) = ++index;
+				pFoundHandle = NULL;
+			}
+		}
+	}
+	free(sl);
+
+	for (int p = 0; p < last_page; p++) {
+		if (*(table + p) == 9999) *(table + p) = ++index;
+
+		sprintf(buf, "%s/%s_%04d.xdw", workdir, prefix, *(table + p));
+		_fullpath(in_path, buf, _MAX_PATH);
+
+		api_result = XDW_GetPage(h, p + 1, in_path, NULL);
+		if (api_result < 0) return api_result;
+	}
+	free(table);
+	XDW_CloseDocumentHandle(h, NULL);
+
+	// ブロック処ç†
+	char *blk_path = (char*)malloc(BLOCKSZ * sizeof(char) * _MAX_PATH);
+	const char **blk_path_addr = (const char**)malloc((last_page / BLOCKSZ + 1) * sizeof(char*) * _MAX_PATH);
+
+	int bn = 0;
+	for (int p = 0, m = 0; p < last_page; p++) {
+		m = p % BLOCKSZ;
+
+		if (m == 0 && p > 0) {
+			sprintf(buf, "%s/%s_b%04d.xdw", workdir, prefix, ++bn);
+			_fullpath(in_path, buf, _MAX_PATH);
+
+			api_result = XDW_MergeXdwFiles(blk_path_addr, BLOCKSZ, in_path, NULL);
+			if (api_result < 0) return api_result;
+		} 
+
+		sprintf(buf, "%s/%s_%04d.xdw", workdir, prefix, p + 1);
+		_fullpath(in_path, buf, _MAX_PATH);
+
+		strncpy(&blk_path[m * _MAX_PATH], in_path, _MAX_PATH);
+
+		blk_path_addr[m] = &blk_path[m * _MAX_PATH];
+	}
+
+	sprintf(buf, "%s/%s_b%04d.xdw", workdir, prefix, ++bn);
+	_fullpath(in_path, buf, _MAX_PATH);
+
+	int mod = last_page % BLOCKSZ;
+	if (mod == 0) mod = BLOCKSZ; 
+
+	api_result = XDW_MergeXdwFiles(blk_path_addr, mod, in_path, NULL);
+	if (api_result < 0) return api_result;
+
+	for (int b = 0; b < bn; b++) {
+		sprintf(buf, "%s/%s_b%04d.xdw", workdir, prefix, b + 1);
+
+		_fullpath(in_path, buf, _MAX_PATH);
+		strncpy(&blk_path[b * _MAX_PATH], in_path, _MAX_PATH);
+
+		blk_path_addr[b] = &blk_path[b * _MAX_PATH];
+	}
+
+	_fullpath(in_path, sorted, _MAX_PATH);
+
+	api_result = XDW_MergeXdwFiles(blk_path_addr, bn, in_path, NULL);
+	if (api_result < 0) return api_result;
+
+	free(blk_path);
+	free(blk_path_addr);
+
+    return 0;
+}
+
+int xdw2pdf(const char* xdwfile, const char* pdffile) {
+	char in_path[_MAX_PATH], out_path[_MAX_PATH];
+	_fullpath(in_path,  xdwfile, _MAX_PATH);
+	_fullpath(out_path, pdffile, _MAX_PATH);
+
+	remove(out_path);
+	int api_result = 0;
+
+	XDW_DOCUMENT_HANDLE h = NULL;
+	XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE};
+
+	api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
+	if (api_result < 0) return api_result;
+
+	XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
+	XDW_GetDocumentInformation(h, &info);
+
+	XDW_IMAGE_OPTION_PDF pdf = { 
+		sizeof(XDW_IMAGE_OPTION_PDF),
+		XDW_COMPRESS_MRC_NORMAL,
+		XDW_CONVERT_MRC_OS,
+		info.nPages
+	};  
+
+	XDW_IMAGE_OPTION_EX ex = {
+		sizeof(XDW_IMAGE_OPTION_EX),
+		600, // dpi
+		XDW_IMAGE_MONO_HIGHQUALITY,
+		XDW_IMAGE_PDF,
+		&pdf
+	};
+
+	api_result = XDW_ConvertPageToImageFile(h, 1, out_path, (XDW_IMAGE_OPTION*)&ex);
+
+	XDW_SaveDocument(h, NULL);
+	XDW_CloseDocumentHandle(h, NULL);
+
+	return 0;
+}
+
+int xdwopt(const char* in, const char* out) {
+	char in_path[_MAX_PATH], out_path[_MAX_PATH];
+    _fullpath(in_path,  in,  _MAX_PATH);
+    _fullpath(out_path, out, _MAX_PATH);
+
+	int api_result = XDW_OptimizeDocument(in_path, out_path, NULL);
+	return (api_result >= 0);
+}
+*/
+import "C"
+
+import (
+	"bufio"
+    "encoding/json"
+    "fmt"
+	"flag"
+    "io/ioutil"
+    "log"
+    "os"
+    "os/exec"
+    "path/filepath"
+	"regexp"
+	"sort"
+    "strings"
+	"time"
+
+	"golang.org/x/text/encoding/japanese"
+	"golang.org/x/text/transform"
+)
+
+var (
+    ver = "0.1"
+
+	flg_hb int
+	flg_time bool
+	flg_log bool
+	flg_debug bool
+	flg_clean bool
+
+	confjson = "nk.json"
+	logfile = "nk.log"
+	hhscsv = "hhsdb.csv"
+	tmpdir string
+	tmpprefix = "nktemp_"
+	inputdir = "input"
+	outputdir = "output"
+	outcsv = "out.csv"
+
+	start time.Time
+
+    hb string // 発番
+    fw, hs, kt = "", "", "kttemp.xdw" // 負担割åˆè¨¼, 被ä¿é™ºè€…証, çµæžœé€šçŸ¥
+
+    step, totalstep = 1, 13
+)
+
+type Annotation struct {
+	X, Y int
+	Sz int
+	Tr bool
+	Txt string
+}
+
+type Config struct {
+	Atns []Annotation
+	Kyotaku []string
+}
+
+func (c *Config) ProcessTemplate() {
+	today := time.Now().Format("令和 r 年 1 月 2 日")
+	y := time.Now().Year() - 2018
+	if y == 1 {
+		today = strings.ReplaceAll(today, "r", "å…ƒ")
+	} else {
+		today = strings.ReplaceAll(today, "r", fmt.Sprintf("%d", y))
+	}
+
+	var atns []Annotation
+	for _, atn := range c.Atns {
+		s := atn.Txt
+		if atn.Txt == "date" {
+			s = today
+		}
+		if strings.ContainsAny(atn.Txt, "hb") {
+			s = strings.ReplaceAll(atn.Txt, "hb", hb)
+		}
+		atns = append(atns, Annotation{atn.X, atn.Y, atn.Sz, atn.Tr, s})
+	}
+	c.Atns = atns
+}
+
+func (c *Config) KyotakuList() []string {
+	return c.Kyotaku
+}
+
+func (c *Config) AnnotationList() (al []string) {
+	for _, atn := range c.Atns {
+		tr := 0
+		if atn.Tr {
+			tr = 1
+		}
+		s := fmt.Sprintf("%d,%d,%d,%d,%s", atn.X, atn.Y, atn.Sz, tr, atn.Txt)
+		al = append(al, s)
+	}
+	return
+}
+
+func init() {
+	/* INITIALIZE FLAGS */
+	flag.IntVar(&flg_hb, "b", 0, "set hatsuban")
+	flag.BoolVar(&flg_time, "t", false, "print time")
+	flag.BoolVar(&flg_log, "l", false, "save log")
+	flag.BoolVar(&flg_debug, "d", false, "print data for debug")
+	flag.BoolVar(&flg_clean, "c", false, "clean temporary directory & exit")
+
+    /* CREAN OUTPUT-FILE & TEMP-FILE */
+    if err := os.RemoveAll(outputdir); err != nil {
+        log.Fatal(err)
+    }
+    os.Remove(logfile)
+
+	/* PREPARATE OUTPUT-DIR & TEMP-DIR */
+	if err := os.Mkdir(outputdir, 0755); err != nil {
+		log.Fatal(err)
+	}
+
+	var err error
+	tmpdir, err = ioutil.TempDir(".", tmpprefix)
+	if err != nil {
+		log.Fatal(err)
+	}
+	logfile = filepath.Join(tmpdir, logfile)
+	kt = filepath.Join(tmpdir, kt)
+}
+
+func main() {
+	flag.Parse()
+
+    /* CLEAN TEMPORARY DIRECTORY */
+	if flg_clean {
+		files, err := ioutil.ReadDir(".")
+		if err != nil {
+			log.Fatal(err)
+		}
+		for _, file := range files {
+			if strings.HasPrefix(file.Name(), tmpprefix) {
+				if err := os.RemoveAll(file.Name()); err != nil {
+					log.Fatal(err)
+				}
+			}
+		}
+		os.Exit(0)
+	}
+
+    /* PRINT HEADER */
+    fmt.Println("=======================================")
+    fmt.Println(" 被ä¿é™ºè€…証ã¨çµæžœé€šçŸ¥ã¨è² æ‹…割åˆè¨¼ã‚’... ")
+    fmt.Printf("         - nk [ver %s] -\n", ver)
+    fmt.Println("=======================================\n")
+
+    /* USER INPUT */
+	hb = fmt.Sprintf("%d", flg_hb)
+	if flg_hb == 0 {
+		fmt.Print("発番 > ")
+		fmt.Scan(&hb)
+	}
+
+	start = time.Now()
+
+    /* READ CONFIG FROM JSON */
+    print_step("設定読込ã¿")
+	conf, err := read_conf(confjson)
+	if err != nil {
+		log.Fatal(err)
+	}
+	conf.ProcessTemplate()
+	step_start := print_time(start)
+
+    /* CHECK INPUT-FILE */
+    print_step("入力ファイルã®ãƒã‚§ãƒƒã‚¯")
+    files, err := ioutil.ReadDir(inputdir)
+    if err != nil {
+        log.Fatal(err)
+    }
+
+    var kts []string
+    for _, file := range files {
+        if strings.HasSuffix(file.Name(), ".xdw") {
+            print_debug([]string{file.Name()})
+            switch file.Name()[0:8] {
+            case "KBPV016G":
+                fw = filepath.Join(inputdir, file.Name())
+            case "KBPG316G":
+                hs = filepath.Join(inputdir, file.Name())
+            case "KBPG206G", "KBPG706G":
+                f := filepath.Join(inputdir, file.Name())
+                kts = append(kts, f)
+            }
+        }
+    }
+
+    fmt.Println()
+    fmt.Printf(" 負担割åˆè¨¼ãƒ•ァイル = %s\n", fw)
+    fmt.Printf(" 被ä¿é™ºè€…証ファイル = %s\n", hs)
+    fmt.Print(" çµæžœé€šçŸ¥ãƒ•ァイル   =")
+    for _, f := range kts {
+        fmt.Printf(" %s", f)
+    }
+    fmt.Println()
+    if fw == "" || hs == "" || len(kts) == 0 {
+        fmt.Fprintf(os.Stderr, "Input file is wrong.\n")
+        os.Exit(1)
+    }
+
+	bytes, err := ioutil.ReadFile(hhscsv)
+	if err != nil {
+		log.Fatal(err)
+	}
+	hash_hhs := make(map[string]string) // 被ä¿é™ºè€…æ°åã®ãƒãƒƒã‚·ãƒ¥
+	r := strings.NewReader(string(bytes))
+	tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder())
+	buf := bufio.NewScanner(tr)
+	for buf.Scan() {
+		records := strings.Split(buf.Text(), ",")
+		hash_hhs[records[0]] = records[2]
+	}
+    fmt.Printf(" 被ä¿é™ºè€…ファイル   = %s\n", hhscsv)
+
+	step_start = print_time(step_start)
+
+    /* CONCATNATE INPUT-FILE */
+    print_step("çµæžœé€šçŸ¥ãƒ•ァイルã®é€£çµ")
+	b, err := ioutil.ReadFile(kts[0])
+	if err != nil {
+		log.Fatal(err)
+	}
+	if err = ioutil.WriteFile(kt, b, 0644); err != nil {
+		log.Fatal(err)
+	}
+    if len(kts) > 1 {
+        pp := 0
+		fmt.Println()
+        for _, file := range kts {
+            p, _ := C.xdwpages(C.CString(file))
+            fmt.Printf(" %s\t= %d ページ\n", file, int(p))
+            pp += int(p)
+		}
+        fmt.Printf("   åˆè¨ˆ\t= %d ページ\n", pp)
+        for _, file := range kts[1:] {
+            C.xdwpush(C.CString(kt), C.CString(file))
+        }
+    }
+	step_start = print_time(step_start)
+
+    /* MAKE SORT-TABEL */
+    print_step("並ã³é †ã®æ±ºå®š")
+
+	re_hhs := regexp.MustCompile(`05((2126)|(2159)|(4346))0[1238]\d{8}`)
+	re_kaigo := regexp.MustCompile(`è¦((介護)|(支æ´)).`)
+
+	hash_fw := make(map[string]int) // 負担割åˆè¨¼ç™ºè¡Œè€…ã®ãƒãƒƒã‚·ãƒ¥
+	for _, t := range xdw2txt(fw) {
+		hash_fw[re_hhs.FindString(t)]++
+		print_debug([]string{re_hhs.FindString(t)})
+	}
+
+	kyotaku := conf.KyotakuList()
+
+	hash_kaigo := make(map[string]string)   // 被ä¿é™ºè€…証発行者ã®è¦ä»‹è­·åº¦ã®ãƒãƒƒã‚·ãƒ¥
+	hash_kyotaku := make(map[string]string) // 被ä¿é™ºè€…証発行者ã®å±…宅介護支æ´äº‹æ¥­æ‰€ã®ãƒãƒƒã‚·ãƒ¥
+	var sorttable []string
+	for _, t := range xdw2txt(hs) {
+		h := re_hhs.FindString(t)
+		hash_kaigo[h] = re_kaigo.FindString(t)
+		for  _, k := range kyotaku {
+			if strings.Contains(t, k) {
+				hash_kyotaku[h] = k
+			}
+		}
+		key := make_sort_key(hash_fw[h], re_kaigo.FindString(t), h)
+		s := fmt.Sprintf("%s#%d:%s:%s#%s", key, hash_fw[h], re_kaigo.FindString(t), hash_kyotaku[h], h)
+		sorttable = append(sorttable, s)
+	}
+	//sort.Sort(sort.Reverse(sort.StringSlice(sorttable)))
+	sort.Sort(sort.StringSlice(sorttable))
+	print_debug(sorttable)
+	step_start = print_time(step_start)
+
+    /* DO SORT */
+	order := ""
+	for _, s := range sorttable {
+		t := strings.Split(s, "#")
+		order += ":" + t[len(t)-1][6:]
+	}
+	order = strings.Replace(order, ":", "", 1)
+
+    print_step("被ä¿é™ºè€…è¨¼ä¸¦ã³æ›¿ãˆ")
+	hs_sorted := filepath.Join(tmpdir, "hs.xdw")
+	C.xdwsort(C.CString(hs), C.CString(hs_sorted), C.CString(order), C.CString(tmpdir), C.CString("hs"))
+	step_start = print_time(step_start)
+
+    print_step("負担割åˆè¨¼ä¸¦ã³æ›¿ãˆ")
+	fw_sorted := filepath.Join(tmpdir, "fw.xdw")
+	C.xdwsort(C.CString(fw), C.CString(fw_sorted), C.CString(order), C.CString(tmpdir), C.CString("fw"))
+	step_start = print_time(step_start)
+
+    print_step("çµæžœé€šçŸ¥ä¸¦ã³æ›¿ãˆ")
+	kt_sorted := filepath.Join(tmpdir, "kt.xdw")
+	C.xdwsort(C.CString(kt), C.CString(kt_sorted), C.CString(order), C.CString(tmpdir), C.CString("kt"))
+	step_start = print_time(step_start)
+
+    /* ADD ANNOTATION */
+    print_step("発番å°å­—")
+	al := strings.Join(conf.AnnotationList(), ":")
+	al, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), al)
+    C.xdwaddatn(C.CString(kt_sorted), C.CString(al))
+	step_start = print_time(step_start)
+
+    /* OPTIMIZE OUTPUT-FILE */
+    print_step("最é©åŒ–")
+	hs_opt := filepath.Join(outputdir, "hs.xdw")
+    C.xdwopt(C.CString(hs_sorted), C.CString(hs_opt))
+	fw_opt := filepath.Join(outputdir, "fw.xdw")
+    C.xdwopt(C.CString(fw_sorted), C.CString(fw_opt))
+	kt_opt := filepath.Join(outputdir, "kt.xdw")
+    C.xdwopt(C.CString(kt_sorted), C.CString(kt_opt))
+	step_start = print_time(step_start)
+
+    /* OUTPUT CSV */
+    print_step("CSV出力")
+	outcsv = filepath.Join(outputdir, outcsv)
+	fcsv, err := os.OpenFile(outcsv, os.O_RDWR|os.O_CREATE, 0644)
+	if err != nil {
+		log.Fatal(err)
+	}
+	for i, s := range sorttable {
+		t := strings.Split(s, "#")
+		u := strings.ReplaceAll(t[1], ":", ",")
+		u, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), u)
+		c := t[2][0:6]
+		h := t[2][6:16]
+		n, _, _ := transform.String(japanese.ShiftJIS.NewEncoder(), hash_hhs[h])
+		// seq, city, hno, name, kaigo, fw, kyotaku
+		fmt.Fprintf(fcsv, "%04d,%s,%s,%s,%s\n", i + 1, c, h, n, u)
+	}
+	if err := fcsv.Close(); err != nil {
+		log.Fatal(err)
+	}
+	step_start = print_time(step_start)
+
+    /* PDF */
+    print_step("負担割åˆè¨¼å‰²ä»˜ï¼°ï¼¤ï¼¦ä½œæˆ")
+	fwpdf := filepath.Join(tmpdir, "fw.pdf")
+	C.xdw2pdf(C.CString(fw_opt), C.CString(fwpdf)) // 2min
+	step_start = print_time(step_start)
+
+    print_step("負担割åˆè¨¼ï¼°ï¼¤ï¼¦å‰²ä»˜")
+	fw4pdf := filepath.Join(outputdir, "fw4.pdf")
+	cmd := exec.Command("fw4.exe", fwpdf, fw4pdf, tmpdir)
+	if err := cmd.Run(); err != nil {
+		log.Fatal(err)
+	}
+	step_start = print_time(step_start)
+
+    print_step("終了")
+	step_start = print_time(step_start)
+
+	/* REMOVE TEMP-FILE */
+	if flg_log {
+		logfile2 := filepath.Join(".", strings.Replace(logfile, tmpdir, "", 1))
+		os.Link(logfile, logfile2)
+	}
+
+	if !flg_debug {
+		if err := os.RemoveAll(tmpdir); err != nil {
+			log.Fatal(err)
+		}
+	}
+}
+
+func make_sort_key(fw int, kaigo, h string) string {
+	key := fmt.Sprintf("%d:", 9 - fw)
+	if strings.HasPrefix(kaigo, "è¦æ”¯æ´") {
+		key += "1"
+	}
+	if strings.HasPrefix(kaigo, "è¦ä»‹è­·") {
+		key += "2"
+	}
+	switch {
+	case strings.HasSuffix(kaigo, "1"):
+		key += "1:"
+	case strings.HasSuffix(kaigo, "ï¼’"):
+		key += "2:"
+	case strings.HasSuffix(kaigo, "3"):
+		key += "3:"
+	case strings.HasSuffix(kaigo, "ï¼”"):
+		key += "4:"
+	case strings.HasSuffix(kaigo, "5"):
+		key += "5:"
+	default:
+		key += "00:"
+	}
+	return key + h
+}
+
+func xdw2txt(file string) (txt []string) {
+	s := C.GoString(C.xdw2txt(C.CString(file)))
+	r := strings.NewReader(s)
+	tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder())
+	buf := bufio.NewScanner(tr)
+	for buf.Scan() {
+		txt = append(txt, buf.Text())
+	}
+	return;
+}
+
+func read_conf(file string) (conf Config, err error) {
+    content, err := ioutil.ReadFile(file)
+    if err != nil {
+        log.Fatal(err)
+    }
+	err = json.Unmarshal(content, &conf)
+	return
+}
+
+func print_step(msg string) {
+	s := fmt.Sprintf("\n[%d/%d] %s\n", step, totalstep, msg)
+    step++
+	fmt.Print(s)
+	save_log(s)
+}
+
+func print_time(t time.Time) time.Time {
+	now := time.Now()
+	if !flg_time {
+		return now
+	}
+	elapsed := now.Sub(t)
+	total := now.Sub(start)
+	s := fmt.Sprintf("---- Elapsed: %v (total = %v) @ %02d:%02d\n", elapsed, total, now.Hour(), now.Minute())
+	fmt.Print(s)
+	save_log(s)
+	return now
+}
+
+func print_debug(msg []string) {
+	if !flg_debug {
+		return
+	}
+	s := ""
+	if len(msg) == 1 {
+		s = fmt.Sprintf("----- %s\n", msg)
+	}
+	for i, s := range msg {
+		s += fmt.Sprintf("%05d %s\n", i, s)
+	}
+	fmt.Print(s)
+	save_log(s)
+}
+
+func save_log(logtxt string) error {
+	if !flg_log {
+		return nil
+	}
+	f, err := os.OpenFile(logfile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
+	if err != nil {
+		return err
+	}
+	if _, err := f.Write([]byte(logtxt)); err != nil {
+		f.Close()
+		return err
+	}
+	if err := f.Close(); err != nil {
+		return err
+	}
+	return nil
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Nk/nk.json	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,140 @@
+{
+  "Atns": [
+	  {
+		 "x": 14711,
+		 "y": 1216,
+		 "sz": 100,
+		 "tr": false,
+		 "txt": "大仙広介発第 hb å·ã€€ã€€ã€€"
+	  },
+	  {
+		 "x": 14677,
+		 "y": 1742,
+		 "sz": 100,
+		 "tr": false,
+		 "txt": "date"
+	  },
+	  {
+		 "x": 16015,
+		 "y": 25772,
+		 "sz": 90,
+		 "tr": false,
+		 "txt": "     "
+	  },
+	  {
+		 "x": 1563,
+		 "y": 26969,
+		 "sz": 90,
+		 "tr": false,
+		 "txt": "※ 65歳以上ã®éšœå®³è€…控除対象者èªå®šæ›¸ã®äº¤ä»˜ã«ã¤ã„ã¦ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€ã€€"
+	  },
+	  {
+		 "x": 1787,
+		 "y": 27384,
+		 "sz": 90,
+		 "tr": true,
+		 "txt": "障害者手帳ã®äº¤ä»˜ã‚’å—ã‘ã¦ã„ãªã„65æ­³ä»¥ä¸Šã®æ–¹ã§ã€è¦ä»‹è­·ï¼ˆè¦æ”¯æ´ï¼‰èªå®šã‚’å—ã‘ã¦ãŠã‚Šã€ä¸€å®šã®åŸºæº–ã«è©²å½“ã—ãŸå ´åˆã€"
+	  },
+	  {
+		 "x": 1787,
+		 "y": 27721,
+		 "sz": 90,
+		 "tr": true,
+		 "txt": "ã§ãã¾ã™ã€‚èªå®šæ›¸ã®äº¤ä»˜ã‚’希望ã™ã‚‹æ–¹ã¯å„å¸‚ç”ºã®æ‹…当課ã¾ã§ãŠå•ã„åˆã‚ã›ãã ã•ã„。"
+	  },
+	  {
+		 "x": 1877,
+		 "y": 28136,
+		 "sz": 90,
+		 "tr": true,
+		 "txt": "â—大仙市ç¦ç¥‰äº‹å‹™æ‰€ã€€é«˜é½¢è€…包括支æ´ã‚»ãƒ³ã‚¿ãƒ¼ã€€0187-63-1111 â—仙北市ç¦ç¥‰äº‹å‹™æ‰€ã€€é•·å¯¿æ”¯æ´èª²ã€€é•·å¯¿ã„ããŒã„ä¿‚"
+	  },
+	  {
+		 "x": 1877,
+		 "y": 28475,
+		 "sz": 90,
+		 "tr": true,
+		 "txt": "0187-43-2281  â—美郷町役場(åƒç•‘åºèˆŽï¼‰ç¦ç¥‰ä¿å¥èª²ã€€åœ°åŸŸåŒ…括支æ´ç­ã€€0187-84-4907(内線1506)"
+	  }
+  ],
+  "Kyotaku": [
+    "JA秋田ãŠã°ã“ケアプランセンタ",
+    "ã‚ã„ã±ã‚‹å¤§æ›²å±…宅介護支æ´äº‹æ¥­æ‰€",
+    "ã‚りã™ã®è¡—ケアプランセンター",
+    "ã„ã“ã„ã®é‡Œä»‹è­·ç›¸è«‡ã‚»ãƒ³ã‚¿ãƒ¼",
+    "ãˆãŒãŠã‚±ã‚¢ãƒ—ランセンター",
+    "ãˆãŒãŠä»‹è­·ã‚»ãƒ³ã‚¿ãƒ¼ã²ã³ãæ„›",
+    "ãŠã†ã‚ˆã†ã‹ã‚“介護センター富士見",
+    "ãŠã†ã‚ˆã†ã‹ã‚“居宅介護支æ´ã‚»ãƒ³ã‚¿",
+    "ã‹ãã®ã ã¦ä»‹è­·ç›¸è«‡å®¤",
+    "ã“ã‚‚ã‚Œã³æ”¯æ´ã‚»ãƒ³ã‚¿ãƒ¼",
+    "ãªã”ã¿å±…宅介護支æ´ã‚»ãƒ³ã‚¿ãƒ¼",
+    "よã¤ã°ä»‹è­·ç›¸è«‡ã‚»ãƒ³ã‚¿ãƒ¼",
+    "ケアプランもã¨ã¾ã¡",
+    "ケアプランセンター神岡",
+    "ケアプランセンター西仙",
+    "ケアプランセンター中通り",
+    "ケアプラン工房",
+    "ケアプラン大曲",
+    "ケアマãƒã‚¹ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã•ã•ãˆæ„›",
+    "ケアライフ心都",
+    "サãƒãƒ¼ãƒˆãƒã‚¦ã‚¹é«˜ç ‚",
+    "サãƒãƒ¼ãƒˆãƒã‚¦ã‚¹ä»™åŒ—",
+    "サングレイス居宅介護支æ´äº‹æ¥­æ‰€",
+    "サンタ園介護支æ´ã‚»ãƒ³ã‚¿ãƒ¼",
+    "スマート・ケアプランセンター",
+    "ニãƒã‚¤ã‚±ã‚¢ã‚»ãƒ³ã‚¿ãƒ¼å¤§æ›²",
+    "リンデンãƒã‚¦ãƒ ã„ãšã¿ã‚±ã‚¢ãƒ—ラン",
+    "ロートピア仙å—居宅介護支æ´äº‹æ¥­",
+    "ロートピア緑泉居宅介護支æ´äº‹æ¥­",
+    "医療法人社団æçœŸä¼šã‚±ã‚¢ã‚µãƒãƒ¼ãƒˆ",
+    "介護プラザã™ãšã‚‰ã‚“大仙居宅介護",
+    "介護支æ´ã‚»ãƒ³ã‚¿ãƒ¼ããŸã†ã‚‰",
+    "è§’é–“å·ä»‹è­·æ”¯æ´ã‚»ãƒ³ã‚¿ãƒ¼ã‚ã‹ã‚Š",
+    "居宅介護支æ´ã‚»ãƒ³ã‚¿ãƒ¼ãƒ†ãƒ³ãƒ€ãƒ¼ãƒ’",
+    "居宅介護支æ´äº‹æ¥­æ‰€çœŒå—",
+    "居宅支æ´äº‹æ¥­æ‰€ã ã„ã›ã‚“",
+    "元気ã§ã­ãƒƒãƒˆæŒ‡å®šå±…宅介護支æ´äº‹",
+    "元気ãƒã‚¦ã‚¹ããŸã†ã‚‰",
+    "å°è¦æ¨¡å¤šæ©Ÿèƒ½åž‹å±…宅介護事業所ケ",
+    "森ã“ã—ã®ä¸˜å±…宅介護支æ´ã‚»ãƒ³ã‚¿ãƒ¼",
+    "仙北市居宅介護支æ´äº‹æ¥­æ‰€",
+    "仙北市社会ç¦ç¥‰å”議会角館ケアマ",
+    "仙北市社会ç¦ç¥‰å”議会西木ケアマ",
+    "仙北市社会ç¦ç¥‰å”議会田沢湖ケア",
+    "仙北市包括支æ´ã‚»ãƒ³ã‚¿ãƒ¼",
+    "大曲訪å•看護ステーション介護支",
+    "大仙市社会ç¦ç¥‰å”議会西部介護ス",
+    "大仙市社会ç¦ç¥‰å”議会中央介護ス",
+    "大仙市社会ç¦ç¥‰å”議会æ±éƒ¨ä»‹è­·ã‚¹",
+    "大仙市地域包括支æ´ã‚»ãƒ³ã‚¿ãƒ¼å”å’Œ",
+    "大仙市地域包括支æ´ã‚»ãƒ³ã‚¿ãƒ¼è¥¿éƒ¨",
+    "大仙市地域包括支æ´ã‚»ãƒ³ã‚¿ãƒ¼ä¸­å¤®",
+    "大仙市地域包括支æ´ã‚»ãƒ³ã‚¿ãƒ¼æ±éƒ¨",
+    "大仙市地域包括支æ´ã‚»ãƒ³ã‚¿ãƒ¼å—部",
+    "大仙美郷介護ç¦ç¥‰çµ„åˆ  ã‹ã„ã”相",
+    "虹ã®è¡—ãŠãŠã¾ãŒã‚Šã‚±ã‚¢ãƒ—ランセン",
+    "虹ã®è¡—ケアプランセンターらããˆ",
+    "美郷町介護事業所",
+    "美郷町地域包括支æ´ã‚»ãƒ³ã‚¿ãƒ¼",
+    "有é™ä¼šç¤¾ãƒãƒ—ラ・ケアサービス",
+    "ピュアã®ã®ã¯ãª",
+    "æ¹§æ°´ã®éƒ·å±…宅介護支æ´äº‹æ¥­æ‰€",
+    "å°è¦æ¨¡å¤šæ©Ÿèƒ½åž‹å±…宅介護事業所 ",
+    "喜楽館",
+    "å°è¦æ¨¡å¤šæ©Ÿèƒ½åž‹å±…宅介護ã¤ã°ãè‹‘",
+    "ã•ãらケアセンター",
+    "ãŸã‚“ã½ã½",
+    "介護相談室 笑ã¿ã‚…",
+    "ケアプランセンターã‚んり",
+    "ケアプランãµãã¿ã‚Šãƒ",
+    "ã‚ã„りã™ä»‹è­·ç›¸è«‡å®¤",
+    "ケアステーション花ã”よã¿",
+    "ãŠã†ã‚ˆã†ã‹ã‚“介護センター",
+    "ãŠã†ã‚ˆã†ã‹ã‚“「å·å£ã®å®¶ã€",
+    "多機能ホーム西仙",
+    "ケアサãƒãƒ¼ãƒˆç¥žå²¡",
+    "清æµè‹‘居宅介護支æ´ã‚»ãƒ³ã‚¿ãƒ¼"
+  ]
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Nk/xdw_api.h	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,1121 @@
+/* File: xdw_api.h
+// Copyright(C) 1999-2013 by Fuji Xerox Co., Ltd. All right reserved.  
+*/
+
+#ifndef XDW_API_H
+#define XDW_API_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#ifndef XDWAPI_DECLARATIONS
+#define XDWAPI_DECLARATIONS
+
+#ifdef _WIN64
+#ifndef XDW_DISABLE_PRAGMA_PACK
+#pragma pack(push, xdwapi_enter_parser)
+#pragma pack(8)
+#endif	/* XDW_DISABLE_PRAGMA_PACK */
+#endif	/* _WIN64 */
+
+#define XDWAPI __stdcall
+
+#define XDW_GI_VERSION            1
+#define XDW_GI_INSTALLPATH        2
+#define XDW_GI_BINPATH            3
+#define XDW_GI_PLUGINPATH         4
+#define XDW_GI_FOLDERROOTPATH     5
+#define XDW_GI_USERFOLDERPATH     6
+#define XDW_GI_SYSTEMFOLDERPATH   7
+#define XDW_GI_RECEIVEFOLDERPATH  8
+#define XDW_GI_SENDFOLDERPATH     9
+#define XDW_GI_DWINPUTPATH       10
+#define XDW_GI_DWDESKPATH        11
+#define XDW_GI_DWVIEWERPATH      12
+#define XDW_GI_DWVLTPATH         13
+#define XDW_GI_DWDESK_FILENAME_DELIMITER 1001
+#define XDW_GI_DWDESK_FILENAME_DIGITS    1002
+
+
+#define XDW_PGT_NULL              0
+#define XDW_PGT_FROMIMAGE         1
+#define XDW_PGT_FROMAPPL          2
+
+#define XDW_MAXPATH             255
+#define XDW_MAXINPUTIMAGEPATH   127
+
+#define XDW_OPEN_READONLY       0
+#define XDW_OPEN_UPDATE         1
+
+#define XDW_AUTH_NONE			0
+#define XDW_AUTH_NODIALOGUE		1
+#define XDW_AUTH_CONDITIONAL_DIALOGUE		2
+
+#define XDW_PERM_DOC_EDIT		0x02
+#define XDW_PERM_ANNO_EDIT		0x04
+#define XDW_PERM_PRINT			0x08
+#define XDW_PERM_COPY			0x10
+
+#define XDW_DT_DOCUMENT			0
+#define XDW_DT_BINDER			1
+#define XDW_DT_CONTAINER		2
+
+#define XDW_ROT_0				0
+#define XDW_ROT_90              90
+#define XDW_ROT_180             180
+#define XDW_ROT_270             270
+
+#define XDW_CREATE_FITDEF		0
+#define XDW_CREATE_FIT			1
+#define XDW_CREATE_USERDEF		2
+#define XDW_CREATE_USERDEF_FIT	3
+#define XDW_CREATE_FITDEF_DIVIDEBMP 4
+
+#define XDW_COMPRESS_NORMAL				0
+#define XDW_COMPRESS_LOSSLESS			1
+#define XDW_COMPRESS_HIGHQUALITY		2
+#define XDW_COMPRESS_HIGHCOMPRESS		3
+#define XDW_COMPRESS_NOCOMPRESS			4
+#define XDW_COMPRESS_JPEG				5
+#define XDW_COMPRESS_PACKBITS			6
+#define XDW_COMPRESS_G4					7
+#define XDW_COMPRESS_MRC_NORMAL			8
+#define XDW_COMPRESS_MRC_HIGHQUALITY	9
+#define XDW_COMPRESS_MRC_HIGHCOMPRESS	10
+#define XDW_COMPRESS_MRC				11
+#define XDW_COMPRESS_JPEG_TTN2			12
+
+#define XDW_CONVERT_MRC_ORIGINAL  0
+#define XDW_CONVERT_MRC_OS        1
+
+#define XDW_IMAGE_DIB		0
+#define XDW_IMAGE_TIFF		1
+#define XDW_IMAGE_JPEG		2
+#define XDW_IMAGE_PDF		3
+
+#define XDW_CREATE_HCENTER  0
+#define XDW_CREATE_LEFT     1
+#define XDW_CREATE_RIGHT    2
+
+#define XDW_CREATE_VCENTER  0
+#define XDW_CREATE_TOP      1
+#define XDW_CREATE_BOTTOM   2
+
+#define XDW_CREATE_DEFAULT_SIZE 0
+#define XDW_CREATE_A3_SIZE		1
+#define XDW_CREATE_2A0_SIZE		2
+
+#define	XDW_LINE_NONE			0
+#define XDW_LINE_BEGINNING		1
+#define	XDW_LINE_ENDING			2
+#define XDW_LINE_BOTH			3
+#define XDW_LINE_WIDE_POLYLINE	0
+#define XDW_LINE_POLYLINE		1
+#define XDW_LINE_POLYGON		2
+
+#define XDW_BORDER_TYPE_SOLID	0
+#define XDW_BORDER_TYPE_DOT		1
+#define XDW_BORDER_TYPE_DASH	2
+#define XDW_BORDER_TYPE_DASHDOT 3
+#define XDW_BORDER_TYPE_DOUBLE	4
+
+#define XDW_STAMP_AUTO			0
+#define XDW_STAMP_MANUAL		1
+#define XDW_STAMP_NO_BASISYEAR	0
+#define XDW_STAMP_BASISYEAR		1
+#define XDW_STAMP_DATE_YMD		0
+#define XDW_STAMP_DATE_DMY		1
+
+#define	XDW_PAGEFORM_HEADER			0
+#define	XDW_PAGEFORM_FOOTER			1
+#define XDW_PAGEFORM_TOPIMAGE		2
+#define	XDW_PAGEFORM_BOTTOMIMAGE	3
+#define XDW_PAGEFORM_PAGENUMBER		4
+
+#define XDW_PAGEFORM_STAY	0
+#define XDW_PAGEFORM_REMOVE	1
+
+#define	XDW_ALIGN_LEFT		0
+#define	XDW_ALIGN_HCENTER	1
+#define	XDW_ALIGN_RIGHT		2
+#define XDW_ALIGN_TOP		0
+#define XDW_ALIGN_BOTTOM	1
+#define	XDW_ALIGN_VCENTER	2
+
+#define	XDW_PAGERANGE_ALL		0
+#define	XDW_PAGERANGE_SPECIFIED	1
+
+#define XDW_CRTP_BEGINNING              1
+#define XDW_CRTP_PRINTING               2
+#define XDW_CRTP_PAGE_CREATING          3
+#define XDW_CRTP_ORIGINAL_APPENDING     4
+#define XDW_CRTP_WRITING                5
+#define XDW_CRTP_ENDING                 6
+#define XDW_CRTP_CANCELING              7
+#define XDW_CRTP_FINISHED               8
+#define XDW_CRTP_CANCELED               9
+
+#define XDW_AID_FUSEN           32794
+#define XDW_AID_TEXT            32785
+#define XDW_AID_STAMP           32819
+#define XDW_AID_STRAIGHTLINE    32828
+#define XDW_AID_RECTANGLE       32829
+#define XDW_AID_ARC             32830
+#define XDW_AID_POLYGON			32834
+#define XDW_AID_MARKER          32795
+#define XDW_AID_LINK            49199
+#define XDW_AID_PAGEFORM        32814
+#define XDW_AID_OLE             32783
+#define XDW_AID_BITMAP          32831
+#define XDW_AID_RECEIVEDSTAMP	32832
+#define XDW_AID_CUSTOM			32837
+#define XDW_AID_TITLE			32838
+#define	XDW_AID_GROUP			32839
+
+#define XDW_ATYPE_INT		0
+#define XDW_ATYPE_STRING	1
+#define	XDW_ATYPE_DATE		2
+#define XDW_ATYPE_BOOL		3
+#define XDW_ATYPE_OCTS		4
+#define XDW_ATYPE_OTHER		999
+
+#define XDW_SUMMARY_INFO	1
+#define XDW_USER_DEF		2
+#define XDW_ANNOTATION		4
+
+#define XDW_SIZE_FREE			0
+#define XDW_SIZE_A3_PORTRAIT	1
+#define XDW_SIZE_A3_LANDSCAPE	2
+#define XDW_SIZE_A4_PORTRAIT	3
+#define XDW_SIZE_A4_LANDSCAPE	4
+#define XDW_SIZE_A5_PORTRAIT	5
+#define XDW_SIZE_A5_LANDSCAPE	6
+#define XDW_SIZE_B4_PORTRAIT	7
+#define XDW_SIZE_B4_LANDSCAPE	8
+#define XDW_SIZE_B5_PORTRAIT	9
+#define XDW_SIZE_B5_LANDSCAPE	10
+
+#define XDW_BINDER_COLOR_0		0
+#define XDW_BINDER_COLOR_1		1
+#define XDW_BINDER_COLOR_2		2
+#define XDW_BINDER_COLOR_3		3
+#define XDW_BINDER_COLOR_4		4
+#define XDW_BINDER_COLOR_5		5
+#define XDW_BINDER_COLOR_6		6
+#define XDW_BINDER_COLOR_7		7
+#define XDW_BINDER_COLOR_8		8
+#define XDW_BINDER_COLOR_9		9
+#define XDW_BINDER_COLOR_10		10
+#define XDW_BINDER_COLOR_11		11
+#define XDW_BINDER_COLOR_12		12
+#define XDW_BINDER_COLOR_13		13
+#define XDW_BINDER_COLOR_14		14
+#define XDW_BINDER_COLOR_15		15
+
+#define XDW_REDUCENOISE_NONE	0
+#define XDW_REDUCENOISE_NORMAL	1
+#define XDW_REDUCENOISE_WEAK	2
+#define XDW_REDUCENOISE_STRONG	3
+
+#define XDW_PRIORITY_NONE			0
+#define XDW_PRIORITY_SPEED			1
+#define XDW_PRIORITY_RECOGNITION	2
+
+#define XDW_OCR_ENGINE_V4		1	// old name - should be here for compatibility
+#define XDW_OCR_ENGINE_DEFAULT	1
+#define XDW_OCR_ENGINE_WRP		2
+#define XDW_OCR_ENGINE_FRE		3
+#define XDW_OCR_ENGINE_FRE_MULTI		4
+
+#define XDW_OCR_LANGUAGE_AUTO				-1
+#define XDW_OCR_LANGUAGE_JAPANESE			0
+#define XDW_OCR_LANGUAGE_ENGLISH			1
+
+#define XDW_OCR_MULTIPLELANGUAGES_ENGLISH				0x02
+#define XDW_OCR_MULTIPLELANGUAGES_FRENCH				0x04
+#define XDW_OCR_MULTIPLELANGUAGES_SIMPLIFIED_CHINESE	0x08
+#define XDW_OCR_MULTIPLELANGUAGES_TRADITIONAL_CHINESE	0x10
+#define XDW_OCR_MULTIPLELANGUAGES_THAI					0x20
+#define XDW_OCR_MULTIPLELANGUAGES_JAPANESE				0x40
+#define XDW_OCR_MULTIPLELANGUAGES_KOREAN				0x80
+
+#define XDW_OCR_FORM_AUTO		0
+#define XDW_OCR_FORM_TABLE		1
+#define XDW_OCR_FORM_WRITING	2
+
+#define XDW_OCR_COLUMN_AUTO					0
+#define XDW_OCR_COLUMN_HORIZONTAL_SINGLE	1
+#define XDW_OCR_COLUMN_HORIZONTAL_MULTI		2
+#define XDW_OCR_COLUMN_VERTICAL_SINGLE		3
+#define XDW_OCR_COLUMN_VERTICAL_MULTI		4
+
+#define XDW_OCR_DOCTYPE_AUTO				0
+#define XDW_OCR_DOCTYPE_HORIZONTAL_SINGLE	1
+#define XDW_OCR_DOCTYPE_PLAINTEXT			2
+
+#define XDW_OCR_ENGINE_LEVEL_SPEED		1
+#define XDW_OCR_ENGINE_LEVEL_STANDARD	2
+#define XDW_OCR_ENGINE_LEVEL_ACCURACY	3
+
+#define XDW_OCR_MIXEDRATE_JAPANESE		1
+#define XDW_OCR_MIXEDRATE_BALANCED		2
+#define XDW_OCR_MIXEDRATE_ENGLISH		3
+
+#define XDW_PROTECT_PSWD	1
+#define XDW_PROTECT_PSWD128	3
+#define XDW_PROTECT_PKI		4
+#define XDW_PROTECT_STAMP	5
+#define XDW_PROTECT_CONTEXT_SERVICE	6
+#define XDW_PROTECT_PSWD256	7
+#define XDW_PROTECT_PKI256	8
+
+#define XDW_GPTI_TYPE_EMF		0
+#define XDW_GPTI_TYPE_OCRTEXT	1
+
+#define	XDW_IMAGE_MONO				0
+#define	XDW_IMAGE_COLOR				1
+#define	XDW_IMAGE_MONO_HIGHQUALITY	2
+
+#define XDW_SIGNATURE_STAMP	100
+#define XDW_SIGNATURE_PKI	102
+#define XDW_SIGNATURE_PKI_SHA256	105
+
+#define XDW_SIGNATURE_STAMP_DOC_NONE 0
+#define XDW_SIGNATURE_STAMP_DOC_NOEDIT 1
+#define XDW_SIGNATURE_STAMP_DOC_EDIT 2
+#define XDW_SIGNATURE_STAMP_DOC_BAD 3
+
+#define XDW_SIGNATURE_STAMP_STAMP_NONE 0
+#define XDW_SIGNATURE_STAMP_STAMP_TRUSTED 1
+#define XDW_SIGNATURE_STAMP_STAMP_NOTRUST 2
+
+#define XDW_SIGNATURE_STAMP_ERROR_OK 0
+#define XDW_SIGNATURE_STAMP_ERROR_NO_OPENING_CASE 1
+#define XDW_SIGNATURE_STAMP_ERROR_NO_SELFSTAMP 2
+#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_VALIDITY 3
+#define XDW_SIGNATURE_STAMP_ERROR_INVALID_DATA 4
+#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_MEMORY 100
+#define XDW_SIGNATURE_STAMP_ERROR_UNKNOWN 9999
+
+#define XDW_SIGNATURE_PKI_DOC_UNKNOWN 0
+#define XDW_SIGNATURE_PKI_DOC_GOOD 1
+#define XDW_SIGNATURE_PKI_DOC_MODIFIED 2
+#define XDW_SIGNATURE_PKI_DOC_BAD 3
+#define XDW_SIGNATURE_PKI_DOC_GOOD_TRUSTED 4
+#define XDW_SIGNATURE_PKI_DOC_MODIFIED_TRUSTED 5
+
+#define XDW_SIGNATURE_PKI_TYPE_LOW 0
+#define XDW_SIGNATURE_PKI_TYPE_MID_LOCAL 1
+#define XDW_SIGNATURE_PKI_TYPE_MID_NETWORK 2
+#define XDW_SIGNATURE_PKI_TYPE_HIGH_LOCAL 3
+#define XDW_SIGNATURE_PKI_TYPE_HIGH_NETWORK 4
+
+#define XDW_SIGNATURE_PKI_CERT_UNKNOWN 0
+#define XDW_SIGNATURE_PKI_CERT_OK 1
+#define XDW_SIGNATURE_PKI_CERT_NO_ROOT_CERTIFICATE 2
+#define XDW_SIGNATURE_PKI_CERT_NO_REVOCATION_CHECK 3
+#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY 4
+#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY_AT_SIGNED_TIME 5
+#define XDW_SIGNATURE_PKI_CERT_REVOKE_CERTIFICATE 6
+#define XDW_SIGNATURE_PKI_CERT_REVOKE_INTERMEDIATE_CERTIFICATE 7
+#define XDW_SIGNATURE_PKI_CERT_INVALID_SIGNATURE 8
+#define XDW_SIGNATURE_PKI_CERT_INVALID_USAGE 9
+#define XDW_SIGNATURE_PKI_CERT_UNDEFINED_ERROR 10
+
+#define XDW_SIGNATURE_PKI_ERROR_UNKNOWN 0
+#define XDW_SIGNATURE_PKI_ERROR_OK 1
+#define XDW_SIGNATURE_PKI_ERROR_BAD_PLATFORM 2
+#define XDW_SIGNATURE_PKI_ERROR_WRITE_REG_ERROR 3
+#define XDW_SIGNATURE_PKI_ERROR_BAD_TRUST_LEVEL 4
+#define XDW_SIGNATURE_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5
+#define XDW_SIGNATURE_PKI_ERROR_BAD_AUTO_IMPORT_CERT_FLAG 6
+#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CONFIG 7
+#define XDW_SIGNATURE_PKI_ERROR_NO_IMAGE_FILE 8
+#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CERT 9
+#define XDW_SIGNATURE_PKI_ERROR_NO_SIGN_CERT 10
+#define XDW_SIGNATURE_PKI_ERROR_NOT_USE_PRIVATE_KEY 11
+#define XDW_SIGNATURE_PKI_ERROR_INVALID 12
+#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN 13
+#define XDW_SIGNATURE_PKI_ERROR_REVOKE_CHECK_ERROR 14
+#define XDW_SIGNATURE_PKI_ERROR_OUT_OF_VALIDITY 15
+#define XDW_SIGNATURE_PKI_ERROR_NO_CERT 16
+#define XDW_SIGNATURE_PKI_ERROR_FAILURE_IMPOPT_CERT 17
+#define XDW_SIGNATURE_PKI_ERROR_NO_ROOT_CERT 18
+#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_SIZE 19
+#define XDW_SIGNATURE_PKI_ERROR_BAD_ARG 20
+#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_FORMAT 21
+
+#define XDW_SECURITY_PKI_ERROR_UNKNOWN 0
+#define XDW_SECURITY_PKI_ERROR_OK 1
+#define XDW_SECURITY_PKI_ERROR_BAD_PLATFORM 2
+#define XDW_SECURITY_PKI_ERROR_WRITE_REG_ERROR 3
+#define XDW_SECURITY_PKI_ERROR_BAD_TRUST_LEVEL 4
+#define XDW_SECURITY_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5
+#define XDW_SECURITY_PKI_ERROR_REVOKED 6
+#define XDW_SECURITY_PKI_ERROR_BAD_SIGN 7
+#define XDW_SECURITY_PKI_ERROR_REVOKE_CHECK_ERROR 8
+#define XDW_SECURITY_PKI_ERROR_OUT_OF_VALIDITY 9
+#define XDW_SECURITY_PKI_ERROR_NO_CERT 10
+#define XDW_SECURITY_PKI_ERROR_FAILURE_IMPORT_CERT 11
+#define XDW_SECURITY_PKI_ERROR_NO_ROOT_CERT 12
+#define XDW_SECURITY_PKI_ERROR_BAD_CERT_FORMAT 13
+#define XDW_SECURITY_PKI_ERROR_BAD_CERT_USAGE 14
+#define XDW_SECURITY_PKI_ERROR_CA_CERT_IS_REVOKED 15
+#define XDW_SECURITY_PKI_ERROR_TOO_MANY_CERT 16
+
+#define XDW_IGNORE_CASE      0x02
+#define XDW_IGNORE_WIDTH     0x04
+#define XDW_IGNORE_HIRAKATA  0x08
+
+#define XDW_STARCH 1
+#define XDW_STARCH_OFF 0
+
+#define XDW_TEXT_UNKNOWN  0
+#define XDW_TEXT_MULTIBYTE  1
+#define XDW_TEXT_UNICODE  2
+#define XDW_TEXT_UNICODE_IFNECESSARY  3
+
+#define XDW_HGLOBAL	void*
+
+typedef struct { int dummy; } *XDW_DOCUMENT_HANDLE;
+typedef struct { int dummy; } *XDW_CREATE_HANDLE;
+typedef struct { int dummy; } *XDW_ANNOTATION_HANDLE;
+typedef struct { int dummy; } *XDW_FOUND_HANDLE;
+
+typedef unsigned short XDW_WCHAR;
+
+typedef struct tag_XDW_RECT {
+  long left;
+  long top;
+  long right;
+  long bottom;
+} XDW_RECT;
+
+typedef struct tag_XDW_GPTI_OCRTEXT_UNIT {
+	const char*	lpszText;
+	XDW_RECT	rect;
+} XDW_GPTI_OCRTEXT_UNIT;
+
+typedef struct tag_XDW_GPTI_OCRTEXT {
+	int						nUnitNum;
+	XDW_GPTI_OCRTEXT_UNIT*	pUnits;
+} XDW_GPTI_OCRTEXT;
+
+typedef struct tag_XDW_GPTI_INFO {
+	int			nSize;
+	int			nInfoType;
+	int			nPageWidth;
+	int			nPageHeight;
+	int			nRotateDegree;
+	int			nDataSize;
+	XDW_HGLOBAL	pData;
+} XDW_GPTI_INFO;
+
+typedef struct tag_XDW_DOCUMENT_INFO {
+  int nSize;
+  int nPages;
+  int nVersion;
+  int nOriginalData;
+  int nDocType;
+  int nPermission;
+  int nShowAnnotations;
+  int nDocuments;
+  int nBinderColor;
+  int nBinderSize;
+} XDW_DOCUMENT_INFO;
+
+typedef struct tag_XDW_PAGE_INFO {
+  int nSize;
+  int nWidth;
+  int nHeight;
+  int nPageType;
+  int nHorRes;
+  int nVerRes;
+  int nCompressType;
+  int nAnnotations;
+} XDW_PAGE_INFO;
+
+typedef struct tag_XDW_PAGE_INFO_EX {
+  int nSize;
+  int nWidth;
+  int nHeight;
+  int nPageType;
+  int nHorRes;
+  int nVerRes;
+  int nCompressType;
+  int nAnnotations;
+  int nDegree;
+  int nOrgWidth;
+  int nOrgHeight;
+  int nOrgHorRes;
+  int nOrgVerRes;
+  int nImageWidth;
+  int nImageHeight;
+} XDW_PAGE_INFO_EX;
+
+typedef struct tag_XDW_IMAGE_OPTION {
+  int nSize;
+  int nDpi;
+  int nColor;
+} XDW_IMAGE_OPTION;
+
+typedef struct tag_XDW_OPEN_MODE {
+	int nSize;
+	int nOption;
+} XDW_OPEN_MODE;
+
+typedef struct tag_XDW_OPEN_MODE_EX {
+	int nSize;
+	int nOption;
+	int nAuthMode;
+} XDW_OPEN_MODE_EX;
+
+typedef struct tag_XDW_CREATE_OPTION {
+	int nSize;
+	int nFitImage;
+	int nCompress;
+	int nZoom;
+	int nWidth;
+	int nHeight;
+	int nHorPos;
+	int nVerPos;
+} XDW_CREATE_OPTION;
+
+typedef struct tag_XDW_CREATE_OPTION_EX {
+	int nSize;
+	int nFitImage;
+	int nCompress;
+	int nZoom;
+	int nWidth;
+	int nHeight;
+	int nHorPos;
+	int nVerPos;
+	int nZoomDetail;
+} XDW_CREATE_OPTION_EX;
+
+typedef struct tag_XDW_CREATE_OPTION_EX2 {
+	int nSize;
+	int nFitImage;
+	int nCompress;
+	int nZoom;
+	int nWidth;
+	int nHeight;
+	int nHorPos;
+	int nVerPos;
+	int nZoomDetail;
+	int nMaxPaperSize;
+} XDW_CREATE_OPTION_EX2;
+
+
+#define XDW_SIZEOF_ORGDATANAME	256
+typedef struct tag_XDW_ORGDATA_INFO {
+	int nSize;
+	int nDataSize;
+	long nDate;
+	char szName[XDW_SIZEOF_ORGDATANAME];
+} XDW_ORGDATA_INFO;
+
+typedef struct tag_XDW_ORGDATA_INFOW {
+	int nSize;
+	int nDataSize;
+	long nDate;
+	XDW_WCHAR szName[XDW_SIZEOF_ORGDATANAME];
+} XDW_ORGDATA_INFOW;
+
+#define	XDW_SIZEOF_LINKROOTFOLDER	256
+typedef struct tag_XDW_LINKROOTFOLDER_INFO {
+	int nSize;
+	char szPath[XDW_SIZEOF_LINKROOTFOLDER];
+	char szLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER];
+} XDW_LINKROOTFOLDER_INFO ;
+
+typedef struct tag_XDW_LINKROOTFOLDER_INFOW {
+	int nSize;
+	XDW_WCHAR wszPath[XDW_SIZEOF_LINKROOTFOLDER];
+	XDW_WCHAR wszLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER];
+} XDW_LINKROOTFOLDER_INFOW ;
+
+typedef struct tag_XDW_CREATE_STATUS {
+	int nSize;
+	int phase;
+	int nTotalPage;
+	int nPage;
+} XDW_CREATE_STATUS;
+
+typedef struct tag_XDW_ANNOTATION_INFO {
+	int nSize;
+	XDW_ANNOTATION_HANDLE handle;
+	int nHorPos;
+	int nVerPos;
+	int nWidth;
+	int nHeight;
+	int nAnnotationType;
+	int nChildAnnotations;
+} XDW_ANNOTATION_INFO;
+
+
+typedef struct tag_XDW_AA_INITIAL_DATA {
+    int nSize;
+    int nAnnotationType;
+    int nReserved1;
+    int nReserved2;
+} XDW_AA_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_FUSEN_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    int nWidth;
+    int nHeight;
+} XDW_AA_FUSEN_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_STRAIGHTLINE_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    int nHorVec;
+    int nVerVec;
+} XDW_AA_STRAIGHTLINE_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_RECT_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    int nWidth;
+    int nHeight;
+} XDW_AA_RECT_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_ARC_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    int nWidth;
+    int nHeight;
+} XDW_AA_ARC_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_BITMAP_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    char szImagePath[256];
+} XDW_AA_BITMAP_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_BITMAP_INITIAL_DATAW {
+	XDW_AA_INITIAL_DATA common;
+	XDW_WCHAR wszImagePath[256];
+} XDW_AA_BITMAP_INITIAL_DATAW;
+
+typedef struct tag_XDW_AA_STAMP_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nWidth;
+} XDW_AA_STAMP_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_RECEIVEDSTAMP_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nWidth;
+} XDW_AA_RECEIVEDSTAMP_INITIAL_DATA;
+
+#define	XDW_SIZEOF_GUID 36
+typedef struct tag_XDW_AA_CUSTOM_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nWidth;
+	int nHeight;
+	char* lpszGuid;
+	int nCustomDataSize;
+	unsigned char* pCustomData;
+} XDW_AA_CUSTOM_INITIAL_DATA;
+
+typedef struct tag_XDW_IMAGE_OPTION_EX {
+  int nSize;
+  int nDpi;
+  int nColor;
+  int nImageType;
+  void* pDetailOption;
+} XDW_IMAGE_OPTION_EX;
+
+typedef struct tag_XDW_IMAGE_OPTION_TIFF {
+  int nSize;
+  int nCompress;
+  int nEndOfMultiPages;
+} XDW_IMAGE_OPTION_TIFF;
+
+typedef struct tag_XDW_IMAGE_OPTION_JPEG {
+  int nSize;
+  int nCompress;
+} XDW_IMAGE_OPTION_JPEG;
+
+typedef struct tag_XDW_IMAGE_OPTION_PDF {
+	int nSize;
+	int nCompress;
+	int nConvertMethod;
+	int nEndOfMultiPages;
+} XDW_IMAGE_OPTION_PDF;
+
+typedef struct tag_XDW_BINDER_INITIAL_DATA {
+  int nSize;
+  int nBinderColor;
+  int nBinderSize;
+} XDW_BINDER_INITIAL_DATA;
+
+typedef struct tag_XDW_OCR_OPTION_V4 {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nJapaneseKnowledgeProcessing;
+  int nForm;
+  int nColumn;
+  int nDisplayProcess;
+  int nAutoDeskew;
+} XDW_OCR_OPTION_V4;
+
+typedef struct tag_XDW_OCR_OPTION_V5 {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nJapaneseKnowledgeProcessing;
+  int nForm;
+  int nColumn;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+} XDW_OCR_OPTION_V5;
+
+typedef struct tag_XDW_OCR_OPTION_V5_EX {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nJapaneseKnowledgeProcessing;
+  int nForm;
+  int nColumn;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+  int nPriority;
+} XDW_OCR_OPTION_V5_EX;
+
+typedef struct tag_XDW_OCR_OPTION_WRP {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nForm;
+  int nColumn;
+  int nAutoDeskew;
+  int nPriority;
+} XDW_OCR_OPTION_WRP;
+
+typedef struct tag_XDW_OCR_OPTION_FRE {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nDocumentType;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+  int nPriority;
+} XDW_OCR_OPTION_FRE;
+
+typedef struct tag_XDW_OCR_OPTION_V7 {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nJapaneseKnowledgeProcessing;
+  int nForm;
+  int nColumn;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+  int nPriority;
+  int nEngineLevel;
+  int nLanguageMixedRate;
+  int nHalfSizeChar;
+} XDW_OCR_OPTION_V7;
+
+typedef struct tag_XDW_OCR_OPTION_FRE_V7 {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nDocumentType;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+  int nPriority;
+  int nEngineLevel;
+} XDW_OCR_OPTION_FRE_V7;
+
+typedef struct tag_XDW_PAGE_COLOR_INFO {
+  int nSize;
+  int nColor;
+  int nImageDepth;
+} XDW_PAGE_COLOR_INFO;
+
+#define XDW_SIZEOF_PSWD	256
+typedef struct tag_XDW_SECURITY_OPTION_PSWD {
+  int nSize;
+  int nPermission;
+  char szOpenPswd[XDW_SIZEOF_PSWD];
+  char szFullAccessPswd[XDW_SIZEOF_PSWD];
+  char* lpszComment;
+} XDW_SECURITY_OPTION_PSWD;
+
+typedef struct tag_XDW_DER_CERTIFICATE {
+  void *pCert;
+  int nCertSize;
+} XDW_DER_CERTIFICATE;
+
+typedef struct tag_XDW_SECURITY_OPTION_PKI {
+  int nSize;
+  int nPermission;
+  XDW_DER_CERTIFICATE* lpxdcCerts;
+  int nCertsNum;
+  int nFullAccessCertsNum;
+  int nErrorStatus;
+  int nFirstErrorCert;
+} XDW_SECURITY_OPTION_PKI;
+
+typedef struct tag_XDW_PROTECT_OPTION {
+  int nSize;
+  int nAuthMode;
+} XDW_PROTECT_OPTION;
+
+typedef struct tag_XDW_RELEASE_PROTECTION_OPTION {
+  int nSize;
+  int nAuthMode;
+} XDW_RELEASE_PROTECTION_OPTION;
+
+typedef struct tag_XDW_PROTECTION_INFO {
+  int nSize;
+  int nProtectType;
+  int nPermission;
+} XDW_PROTECTION_INFO;
+
+typedef struct tag_XDW_SIGNATURE_OPTION_V5 {
+	int nSize;
+	int nPage;
+	int nHorPos;
+	int nVerPos;
+	int nSignatureType;
+} XDW_SIGNATURE_OPTION_V5;
+
+typedef struct tag_XDW_SIGNATURE_INFO_V5 {
+	int nSize;
+	int nSignatureType;
+	int nPage;
+	int nHorPos;
+	int nVerPos;
+	int nWidth;
+	int nHeight;
+	long nSignedTime;
+} XDW_SIGNATURE_INFO_V5;
+
+typedef struct tag_XDW_SIGNATURE_MODULE_STATUS {
+	int nSize;
+	int nSignatureType;
+	int nErrorStatus;
+} XDW_SIGNATURE_MODULE_STATUS;
+
+typedef struct tag_XDW_SIGNATURE_MODULE_OPTION_PKI {
+	int nSize;
+	void *pSignerCert;
+	int nSignerCertSize;
+} XDW_SIGNATURE_MODULE_OPTION_PKI;
+
+#define	XDW_SIZEOF_STAMPNAME	256
+#define	XDW_SIZEOF_STAMPOWNERNAME	64
+#define	XDW_SIZEOF_STAMPREMARKS	1024
+typedef struct tag_XDW_SIGNATURE_STAMP_INFO_V5 {
+	int nSize;
+	char lpszStampName[XDW_SIZEOF_STAMPNAME];
+	char lpszOwnerName[XDW_SIZEOF_STAMPOWNERNAME];
+	long nValidDate;
+	char lpszRemarks[XDW_SIZEOF_STAMPREMARKS];
+	int nDocVerificationStatus;
+	int nStampVerificationStatus;
+} XDW_SIGNATURE_STAMP_INFO_V5;
+
+#define XDW_SIZEOF_PKIMODULENAME	16
+#define XDW_SIZEOF_PKISUBJECTDN	512
+#define XDW_SIZEOF_PKISUBJECT	256
+#define XDW_SIZEOF_PKIISSUERDN	512
+#define XDW_SIZEOF_PKIISSUER	256
+#define XDW_SIZEOF_PKINOTBEFORE	32
+#define XDW_SIZEOF_PKINOTAFTER	32
+#define XDW_SIZEOF_PKISERIAL	64
+#define XDW_SIZEOF_PKIREMARKS	64
+#define XDW_SIZEOF_PKISIGNEDTIME	32
+
+typedef struct tag_XDW_SIGNATURE_PKI_INFO_V5 {
+	int nSize;
+	char lpszModule[XDW_SIZEOF_PKIMODULENAME];
+	char lpszSubjectDN[XDW_SIZEOF_PKISUBJECTDN];
+	char lpszSubject[XDW_SIZEOF_PKISUBJECT];
+	char lpszIssuerDN[XDW_SIZEOF_PKIISSUERDN];
+	char lpszIssuer[XDW_SIZEOF_PKIISSUER];
+	char lpszNotBefore[XDW_SIZEOF_PKINOTBEFORE];
+	char lpszNotAfter[XDW_SIZEOF_PKINOTAFTER];
+	char lpszSerial[XDW_SIZEOF_PKISERIAL];
+	void* pSignerCert;
+	int nSignerCertSize;
+	char lpszRemarks[XDW_SIZEOF_PKIREMARKS];
+	char lpszSigningTime[XDW_SIZEOF_PKISIGNEDTIME];
+	int nDocVerificationStatus;
+	int nCertVerificationType;
+	int nCertVerificationStatus;
+} XDW_SIGNATURE_PKI_INFO_V5;
+
+typedef struct tag_XDW_OCR_TEXTINFO {
+	int nSize;
+	int nWidth;
+	int nHeight;
+	long charset;
+	char* lpszText;
+	int nLineRect;
+	XDW_RECT* pLineRect;
+} XDW_OCR_TEXTINFO;
+
+typedef struct tag_XDW_OCRIMAGE_OPTION { 
+	int nSize;
+	int nDpi;
+	int nNoiseReduction;
+	int nPriority;
+} XDW_OCRIMAGE_OPTION;
+
+typedef struct tag_XDW_FIND_TEXT_OPTION { 
+	int nSize;
+	int nIgnoreMode;
+	int nReserved;
+	int nReserved2;
+} XDW_FIND_TEXT_OPTION;
+
+#define XDW_FOUND_RECT_STATUS_HIT (0)
+#define XDW_FOUND_RECT_STATUS_PAGE (1)
+
+typedef struct tag_XDW_POINT {
+	int x;
+	int y;
+} XDW_POINT;
+
+
+typedef struct tag_XDW_AA_MARKER_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nCounts;
+    XDW_POINT* pPoints;
+} XDW_AA_MARKER_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_POLYGON_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nCounts;
+    XDW_POINT* pPoints;
+} XDW_AA_POLYGON_INITIAL_DATA;
+
+typedef struct XDW_BEGIN_CREATE_OPTION {
+	int nSize; 
+	BOOL bNoUseSpecifiedApp;
+} XDW_BEGIN_CREATE_OPTION;
+
+#ifdef _WIN64
+#ifndef XDW_DISABLE_PRAGMA_PACK
+#pragma pack(pop, xdwapi_enter_parser)
+#endif	/* XDW_DISABLE_PRAGMA_PACK */
+#endif	/* _WIN64 */
+
+#endif //XDWAPI_DECLARATIONS
+
+
+int XDWAPI XDW_GetInformation(int nIndex, char* lpszOutput, int nSize, void* reserved);
+int XDWAPI XDW_GetInformationW(int nIndex, XDW_WCHAR* lpwszOutput, int nSize, void* reserved);
+int XDWAPI XDW_AddSystemFolder(int nIndex, void* reserved );
+
+int XDWAPI XDW_MergeXdwFiles(const char** lpszInputPaths, int nFiles, const char* lpszOutputPath, void* reserved );
+int XDWAPI XDW_MergeXdwFilesW(const XDW_WCHAR** lpwszInputPaths, int nFiles, const XDW_WCHAR* lpwszOutputPath, void* reserved );
+int XDWAPI XDW_OpenDocumentHandle(const char* lpszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode);
+int XDWAPI XDW_OpenDocumentHandleW(const XDW_WCHAR* lpwszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode);
+int XDWAPI XDW_CloseDocumentHandle(XDW_DOCUMENT_HANDLE handle, void* reserved );
+int XDWAPI XDW_GetDocumentInformation(XDW_DOCUMENT_HANDLE handle, XDW_DOCUMENT_INFO* pDocumentInfo);
+int XDWAPI XDW_GetPageInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_INFO* pPageInfo);
+int XDWAPI XDW_GetPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_GetPageText(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved );
+int XDWAPI XDW_ConvertPageToImageFile(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, XDW_IMAGE_OPTION* pImageOption);
+int XDWAPI XDW_ConvertPageToImageFileW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, XDW_IMAGE_OPTION* pImageOption);
+int XDWAPI XDW_GetPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetPageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_DeletePage(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved);
+int XDWAPI XDW_RotatePage(XDW_DOCUMENT_HANDLE handle, int nPage, int nDegree, void* reserved);
+int XDWAPI XDW_SaveDocument(XDW_DOCUMENT_HANDLE handle, void* reserved);
+int XDWAPI XDW_CreateXdwFromImageFile(const char* lpszInputPath, const char* lpszOutputPath, XDW_CREATE_OPTION* pOption);
+int XDWAPI XDW_CreateXdwFromImageFileW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, XDW_CREATE_OPTION* pOption);
+
+int XDWAPI XDW_GetOriginalDataInformation(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFO* pOriginalDataInfo, void* reserved);
+int XDWAPI XDW_GetOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetOriginalDataW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_InsertOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszInputPath, void* reserved);
+int XDWAPI XDW_DeleteOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, void* reserved);
+
+int XDWAPI XDW_BeginCreationFromAppFile(const char* lpszInputPath, const char* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption);
+int XDWAPI XDW_BeginCreationFromAppFileW(const XDW_WCHAR* lpszInputPath, const XDW_WCHAR* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption);
+int XDWAPI XDW_EndCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved);
+int XDWAPI XDW_GetStatusCreationFromAppFile(XDW_CREATE_HANDLE handle, XDW_CREATE_STATUS* pStatus);
+int XDWAPI XDW_CancelCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved);
+
+int XDWAPI XDW_GetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+int XDWAPI XDW_SetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+
+int XDWAPI XDW_GetAnnotationInformation(XDW_DOCUMENT_HANDLE hDocument, int nPage, XDW_ANNOTATION_HANDLE hAnnotation,int nIndex, XDW_ANNOTATION_INFO* pAnnotationInfo, void* reserved);
+int XDWAPI XDW_GetAnnotationAttribute(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, char* pAttribute, int nDataSize, void* reserved);
+
+int XDWAPI XDW_AddAnnotation(XDW_DOCUMENT_HANDLE handle, int hAnnotationType, int nPage, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation,  void* reserved);
+int XDWAPI XDW_RemoveAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hRemoveAnnotation, void* reserved);
+int XDWAPI XDW_SetAnnotationAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved);
+int XDWAPI XDW_SetAnnotationSize(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nWidth, int nHeight, void* reserved);
+int XDWAPI XDW_SetAnnotationPosition(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, void* reserved);
+int XDWAPI XDW_CreateSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_CreateSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_ExtractFromSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_ExtractFromSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+
+int XDWAPI XDW_ConvertPageToImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, XDW_IMAGE_OPTION* pImageOption);
+int XDWAPI XDW_GetThumbnailImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, void* reserved);
+
+int XDWAPI XDW_GetPageTextToMemory(XDW_DOCUMENT_HANDLE handle, int nPage, char* lpszValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetFullText(XDW_DOCUMENT_HANDLE handle, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+int XDWAPI XDW_SetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+
+int XDWAPI XDW_ReducePageNoise(XDW_DOCUMENT_HANDLE handle, int nPage, int nLevel, void* reserved);
+int XDWAPI XDW_ShowOrHideAnnotations(XDW_DOCUMENT_HANDLE handle, int nShowAnnotations, void* reserved);
+int XDWAPI XDW_GetCompressedPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetCompressedPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_InsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, void* reserved);
+int XDWAPI XDW_InsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, void* reserved);
+int XDWAPI XDW_ApplyOcr(XDW_DOCUMENT_HANDLE handle, int nPage, int nOcrEngine, void* pOption, void* reserved);
+int XDWAPI XDW_RotatePageAuto(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved);
+int XDWAPI XDW_CreateBinder(const char* lpszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved);
+int XDWAPI XDW_CreateBinderW(const XDW_WCHAR* lpwszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved);
+int XDWAPI XDW_InsertDocumentToBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszInputPath, void* reserved);
+
+int XDWAPI XDW_GetDocumentFromBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetDocumentFromBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_DeleteDocumentInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved);
+int XDWAPI XDW_GetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, int nDocNameSize, void* reserved);
+int XDWAPI XDW_SetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, void* reserved);
+int XDWAPI XDW_GetDocumentInformationInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_DOCUMENT_INFO* pDocumentInfo, void* reserved);
+int XDWAPI XDW_Finalize(void* reserved);
+int XDWAPI XDW_GetPageColorInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_COLOR_INFO* pColorInfo, void* reserved);
+int XDWAPI XDW_OptimizeDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_OptimizeDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_ProtectDocument(const char* lpszInputPath, const char* lpszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption);
+int XDWAPI XDW_ProtectDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption);
+
+int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, XDW_CREATE_OPTION* pOption, void* reserved);
+int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, XDW_CREATE_OPTION* pOption, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeNumber(XDW_DOCUMENT_HANDLE handle, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByName(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByOrder(XDW_DOCUMENT_HANDLE handle, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_SetDocumentAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved);
+int XDWAPI XDW_SucceedAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszFilePath, int nDocument, int nSuccession, void* reserved);
+int XDWAPI XDW_SucceedAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszFilePath, int nDocument, int nSuccession, void* reserved);
+int XDWAPI XDW_GetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_SetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved);
+int XDWAPI XDW_UpdatePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved);
+int XDWAPI XDW_RemovePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved);
+int XDWAPI XDW_GetLinkRootFolderInformation(int nOrder, XDW_LINKROOTFOLDER_INFO* pLinkRootFolderInfo, void* reserved);
+int XDWAPI XDW_GetLinkRootFolderInformationW(int nOrder, XDW_LINKROOTFOLDER_INFOW* pLinkRootFolderInfo, void* reserved);
+int XDWAPI XDW_GetLinkRootFolderNumber(void* reserved);
+int XDWAPI XDW_GetLinkRootFolderNumberW(void* reserved);
+int XDWAPI XDW_GetPageTextInformation(XDW_DOCUMENT_HANDLE handle, int nPage, void* pInfo, void* reserved);
+int XDWAPI XDW_GetDocumentSignatureNumber(XDW_DOCUMENT_HANDLE handle, void* reserved);
+int XDWAPI XDW_AddAnnotationOnParentAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int hAnnotationType, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
+int XDWAPI XDW_SignDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus);
+int XDWAPI XDW_SignDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus);
+int XDWAPI XDW_GetSignatureInformation(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pInfo, void* pModuleInfo, void* pReserved, void* pModuleStatus);
+int XDWAPI XDW_UpdateSignatureStatus(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pModuleOption, void* pReserved, void* pModuleStatus);
+
+int XDWAPI XDW_GetOcrImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* pImageOption, void* reserved);
+int XDWAPI XDW_GetOcrImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* pImageOption, void* reserved);
+int XDWAPI XDW_SetOcrData(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_OCR_TEXTINFO* pData, void* reserved);
+
+int XDWAPI XDW_GetDocumentAttributeNumberInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByOrderInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+
+int XDWAPI XDW_GetTMInfo(XDW_DOCUMENT_HANDLE handle, void* pTMInfo, int nTMInfoSize, void* reserved);
+int XDWAPI XDW_SetTMInfo(XDW_DOCUMENT_HANDLE handle, const void* pTMInfo, int nTMInfoSize, void* reserved);
+
+int XDWAPI XDW_CreateXdwFromImagePdfFile(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
+
+int XDWAPI XDW_FindTextInPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszText, XDW_FIND_TEXT_OPTION* pOption, XDW_FOUND_HANDLE* pFoundHandle, void* reserved);
+int XDWAPI XDW_FindNext(XDW_FOUND_HANDLE* pFoundHandle, void* reserved);
+int XDWAPI XDW_GetNumberOfRectsInFoundObject(XDW_FOUND_HANDLE foundHandle, void* reserved);
+int XDWAPI XDW_GetRectInFoundObject(XDW_FOUND_HANDLE foundHandle, int nRect, XDW_RECT* pRect, int* pnStatus, void* reserved);
+int XDWAPI XDW_CloseFoundHandle(XDW_FOUND_HANDLE foundHandle);
+
+int XDWAPI XDW_GetAnnotationUserAttribute(XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+int XDWAPI XDW_SetAnnotationUserAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+
+int XDWAPI XDW_StarchAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nStarch, void* reserved);
+
+int XDWAPI XDW_ReleaseProtectionOfDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption);
+int XDWAPI XDW_ReleaseProtectionOfDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption);
+int XDWAPI XDW_GetProtectionInformation(const char* lpszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved);
+int XDWAPI XDW_GetProtectionInformationW(const XDW_WCHAR* lpwszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved);
+
+int XDWAPI XDW_GetAnnotationCustomAttributeByName(XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetAnnotationCustomAttributeByOrder(XDW_ANNOTATION_HANDLE hAnnotation, int nOrder, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetAnnotationCustomAttributeNumber(XDW_ANNOTATION_HANDLE hAnnotation, void* reserved);
+int XDWAPI XDW_SetAnnotationCustomAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved);
+
+int XDWAPI XDW_GetPageTextToMemoryW(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_WCHAR* pValue, int nBufferLength, void* reserved);
+int XDWAPI XDW_GetFullTextW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pOutputPath, void* reserved);
+int XDWAPI XDW_GetAnnotationAttributeW(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_SetAnnotationAttributeW(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, int nReserved, void* pReserved);
+int XDWAPI XDW_GetDocumentAttributeByNameW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByOrderW(XDW_DOCUMENT_HANDLE handle, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByOrderInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_SetDocumentAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_WCHAR* pDocName, int nBufferLength, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_SetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pDocName, int nTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetOriginalDataInformationW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFOW* pOriginalDataInfoW, int* pnTextType, unsigned int codepage, void* reserved);
+
+int XDWAPI XDW_AddAnnotationFromAnnFile(XDW_DOCUMENT_HANDLE handle, const char* lpszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
+int XDWAPI XDW_AddAnnotationFromAnnFileW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
+int XDWAPI XDW_GroupAnnotations(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int* pnAnntationIndexes, int nAnnotationNum, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
+int XDWAPI XDW_UnGroupAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, void* reserved);
+
+/* error code */
+#ifndef XDWAPI_E_DECLARATIONS
+#define XDWAPI_E_DECLARATIONS
+
+#define XDW_E_NOT_INSTALLED				((int)0x80040001)
+#define XDW_E_INFO_NOT_FOUND			((int)0x80040002)
+#define XDW_E_INSUFFICIENT_BUFFER		((int)0x8007007A)
+#define XDW_E_FILE_NOT_FOUND			((int)0x80070002)
+#define XDW_E_FILE_EXISTS				((int)0x80070050)
+#define XDW_E_ACCESSDENIED				((int)0x80070005)
+#define XDW_E_BAD_FORMAT				((int)0x8007000B)
+#define XDW_E_OUTOFMEMORY				((int)0x8007000E)
+#define XDW_E_WRITE_FAULT				((int)0x8007001D)
+#define XDW_E_SHARING_VIOLATION			((int)0x80070020)
+#define XDW_E_DISK_FULL					((int)0x80070027)
+#define XDW_E_INVALIDARG				((int)0x80070057)
+#define XDW_E_INVALID_NAME				((int)0x8007007B)
+#define XDW_E_INVALID_ACCESS			((int)0x80040003)
+#define XDW_E_INVALID_OPERATION			((int)0x80040004)
+#define XDW_E_NEWFORMAT					((int)0x800E0004)
+#define XDW_E_BAD_NETPATH				((int)0x800E0005)
+#define XDW_E_APPLICATION_FAILED		((int)0x80001156)
+#define XDW_E_SIGNATURE_MODULE			((int)0x800E0010)
+#define XDW_E_PROTECT_MODULE			((int)0x800E0012)
+#define XDW_E_UNEXPECTED				((int)0x8000FFFF)
+#define XDW_E_CANCELED					((int)0x80040005)
+#define XDW_E_ANNOTATION_NOT_ACCEPTED	((int)0x80040006)
+
+#endif //XDWAPI_E_DECLARATIONS
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif /* __cplusplus */
+
+#endif /* XDW_API_H */
+
Binary file src/kaigo/Nk/xdwapi.lib has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Nk/xdwapian.h	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,133 @@
+/* File: xdwapian.h
+// Copyright(C) 1999-2002 by Fuji Xerox Co., Ltd. All right reserved.  
+*/
+
+#ifndef __XDWAPIAN_H__
+#define __XDWAPIAN_H__ 1
+
+#define	XDW_ATN_Text				"%Text"
+#define	XDW_ATN_FontName			"%FontName"
+#define	XDW_ATN_FontStyle			"%FontStyle"
+#define	XDW_ATN_FontSize			"%FontSize"
+#define	XDW_ATN_ForeColor			"%ForeColor"
+#define	XDW_ATN_FontPitchAndFamily	"%FontPitchAndFamily"
+#define	XDW_ATN_FontCharSet			"%FontCharSet"
+#define	XDW_ATN_BackColor			"%BackColor"
+#define	XDW_ATN_Caption				"%Caption"
+#define	XDW_ATN_Url					"%Url"
+#define	XDW_ATN_XdwPath				"%XdwPath"
+#define	XDW_ATN_ShowIcon			"%ShowIcon"
+#define	XDW_ATN_LinkType			"%LinkType"
+#define	XDW_ATN_XdwPage				"%XdwPage"
+#define	XDW_ATN_Tooltip				"%Tooltip"
+#define	XDW_ATN_Tooltip_String		"%TooltipString"
+#define	XDW_ATN_XdwPath_Relative	"%XdwPathRelative"
+#define	XDW_ATN_XdwLink				"%XdwLink"
+#define	XDW_ATN_LinkAtn_Title		"%LinkAtnTitle"
+#define	XDW_ATN_OtherFilePath		"%OtherFilePath"
+#define	XDW_ATN_OtherFilePath_Relative	"%OtherFilePathRelative"
+#define	XDW_ATN_MailAddress			"%MailAddress"
+#define	XDW_ATN_BorderStyle			"%BorderStyle"
+#define	XDW_ATN_BorderWidth			"%BorderWidth"
+#define	XDW_ATN_BorderColor			"%BorderColor"
+#define	XDW_ATN_BorderTransparent	"%BorderTransparent"
+#define XDW_ATN_BorderType			"%BorderType"
+#define	XDW_ATN_FillStyle			"%FillStyle"
+#define	XDW_ATN_FillColor			"%FillColor"
+#define	XDW_ATN_FillTransparent		"%FillTransparent"
+#define	XDW_ATN_ArrowheadType		"%ArrowheadType"
+#define	XDW_ATN_ArrowheadStyle		"%ArrowheadStyle"
+#define	XDW_ATN_WordWrap			"%WordWrap"
+#define	XDW_ATN_TextDirection		"%TextDirection"
+#define XDW_ATN_TextOrientation		"%TextOrientation"
+#define	XDW_ATN_LineSpace			"%LineSpace"
+#define	XDW_ATN_AutoResize			"%AutoResize"
+#define	XDW_ATN_Invisible			"%Invisible"
+#define	XDW_ATN_PageFrom			"%PageFrom"
+#define	XDW_ATN_XdwNameInXbd		"%XdwNameInXbd"
+#define	XDW_ATN_TopField			"%TopField"
+#define	XDW_ATN_BottomField			"%BottomField"
+#define	XDW_ATN_DateStyle			"%DateStyle"
+#define	XDW_ATN_YearField			"%YearField"
+#define	XDW_ATN_MonthField			"%MonthField"
+#define	XDW_ATN_DayField			"%DayField"
+#define	XDW_ATN_BasisYearStyle		"%BasisYearStyle"
+#define	XDW_ATN_BasisYear			"%BasisYear"
+#define	XDW_ATN_DateField_FirstChar	"%DateFieldFirstChar"
+#define	XDW_ATN_Alignment			"%Alignment"
+#define	XDW_ATN_LeftRightMargin		"%LeftRightMargin"
+#define	XDW_ATN_TopBottomMargin		"%TopBottomMargin"
+#define	XDW_ATN_VerPosition			"%VerPosition"
+#define	XDW_ATN_StartingNumber		"%StartingNumber"
+#define	XDW_ATN_Digit				"%Digit"
+#define	XDW_ATN_PageRange			"%PageRange"
+#define	XDW_ATN_BeginningPage		"%BeginningPage"
+#define	XDW_ATN_EndingPage			"%EndingPage"
+#define	XDW_ATN_Zoom				"%Zoom"
+#define	XDW_ATN_ImageFile			"%ImageFile"
+#define XDW_ATN_Points				"%Points"
+#define XDW_ATN_DateFormat			"%DateFormat"
+#define XDW_ATN_DateOrder			"%DateOrder"
+#define XDW_ATN_TextSpacing			"%Spacing"
+#define XDW_ATN_TextTopMargin		"%TopMargin"
+#define XDW_ATN_TextLeftMargin		"%LeftMargin"
+#define XDW_ATN_TextBottomMargin	"%BottomMargin"
+#define XDW_ATN_TextRightMargin		"%RightMargin"
+#define XDW_ATN_TextAutoResizeHeight	"%AutoResizeHeight"
+#define XDW_ATN_GUID				"%CustomAnnGuid"
+#define XDW_ATN_CustomData			"%CustomAnnCustomData"
+
+#define	XDW_PROP_TITLE				"%Title"
+#define	XDW_PROP_SUBJECT			"%Subject"
+#define	XDW_PROP_AUTHOR				"%Author"
+#define	XDW_PROP_KEYWORDS			"%Keywords"
+#define	XDW_PROP_COMMENTS			"%Comments"
+
+#define	XDW_PROPW_TITLE				L"%Title"
+#define	XDW_PROPW_SUBJECT			L"%Subject"
+#define	XDW_PROPW_AUTHOR			L"%Author"
+#define	XDW_PROPW_KEYWORDS			L"%Keywords"
+#define	XDW_PROPW_COMMENTS			L"%Comments"
+
+#define	XDW_COLOR_NONE			0x010101
+#define	XDW_COLOR_BLACK			0x000000
+#define	XDW_COLOR_MAROON		0x000080
+#define	XDW_COLOR_GREEN			0x008000
+#define	XDW_COLOR_OLIVE			0x008080
+#define	XDW_COLOR_NAVY			0x800000
+#define	XDW_COLOR_PURPLE		0x800080
+#define	XDW_COLOR_TEAL			0x808000
+#define	XDW_COLOR_GRAY			0x808080
+#define	XDW_COLOR_SILVER		0xC0C0C0
+#define	XDW_COLOR_RED			0x0000FF
+#define	XDW_COLOR_LIME			0x00FF00
+#define	XDW_COLOR_YELLOW		0x00FFFF
+#define	XDW_COLOR_BLUE			0xFF0000
+#define	XDW_COLOR_FUCHIA		0xFF00FF
+#define	XDW_COLOR_AQUA			0xFFFF00
+#define	XDW_COLOR_WHITE			0xFFFFFF
+#define	XDW_COLOR_FUSEN_RED		0xFFC2FF
+#define	XDW_COLOR_FUSEN_BLUE	0xFFBF9D
+#define	XDW_COLOR_FUSEN_YELLOW	0x64FFFF
+#define XDW_COLOR_FUSEN_LIME	0xC2FF9D
+#define XDW_COLOR_FUSEN_PALE_RED	0xE1D7FF
+#define XDW_COLOR_FUSEN_PALE_BLUE	0xFAE1C8
+#define XDW_COLOR_FUSEN_PALE_YELLOW	0xC3FAFF
+#define XDW_COLOR_FUSEN_PALE_LIME	0xD2FACD
+
+#define	XDW_FS_ITALIC_FLAG		1
+#define	XDW_FS_BOLD_FLAG		2
+#define	XDW_FS_UNDERLINE_FLAG	4
+#define	XDW_FS_STRIKEOUT_FLAG	8
+
+#define	XDW_LT_LINK_TO_ME			0
+#define	XDW_LT_LINK_TO_XDW			1
+#define	XDW_LT_LINK_TO_URL			2
+#define	XDW_LT_LINK_TO_OTHERFILE	3
+#define XDW_LT_LINK_TO_MAILADDR		4
+
+#define	XDW_PF_XDW			0
+#define	XDW_PF_XBD			1
+#define	XDW_PF_XDW_IN_XBD	2
+
+#endif //__XDWAPIAN_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Nk/超5.bat	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,4 @@
+@echo off
+rem nk -l -t -b 555
+nk -c
+nk -l -t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Perori/Perori.bat	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,9 @@
+@echo off
+set PDIR=C:\Users\KAIGO\Desktop\Perori
+mkdir %PDIR%
+
+copy S:\Current\0000_Every\ˆÓŒ©‘E’²¸ˆË—Š\* %PDIR%
+C:
+cd %PDIR%
+call %PDIR%\make.bat
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Perori/addtoday.go	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,14 @@
+package main
+
+import (
+	"io/ioutil"
+	"os"
+	"time"
+)
+
+func main() {
+	t := time.Now().Format("20060102_")
+	b, _ := ioutil.ReadFile(os.Args[1])
+	ioutil.WriteFile(t + os.Args[1], b, 0644)
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Perori/bk.go	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,437 @@
+/*
+ bk.go: Insert Biko & Hatsuban
+
+ Last Change: 2020-03-04 æ°´ 16:48:05.
+*/
+
+package main
+
+/*
+#cgo LDFLAGS: -L. -lxdwapi -static
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <io.h>
+#include <windows.h>
+#include <xdw_api.h>
+#include <xdwapian.h>
+
+#define MAXCOL  1024
+#define MAXLINE 9999
+#define BLOCKSZ  128
+
+char* xdw2txt(const char* file) {
+	char in_path[_MAX_PATH];
+    _fullpath(in_path, file, _MAX_PATH);
+
+	XDW_DOCUMENT_HANDLE h = NULL; // 文書ãƒãƒ³ãƒ‰ãƒ«ã‚’é–‹ã
+	XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE};
+	if (XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode)) {
+		printf("Error: cannot open %s\n", file);
+		return NULL;
+	}
+
+	XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; // ç·ãƒšãƒ¼ã‚¸æ•°ã‚’å¾—ã‚‹
+	XDW_GetDocumentInformation(h, &info);
+    int nPage = info.nPages;
+
+    // メイン処ç†
+    char *lpszvalue, *all_lpszvalue;
+	long datasize[9999];
+    for (int i = 1; i <= nPage; i++) {
+		datasize[i] = XDW_GetPageTextToMemory(h, i, NULL, 0, NULL);
+		datasize[0] += datasize[i];
+    }
+	datasize[0] += nPage - 1;	// for "\n"
+	all_lpszvalue = (char*)malloc(sizeof(char)*datasize[0]);
+	all_lpszvalue[0] = '\0';
+    for (int i = 1; i <= nPage; i++) {
+		if (i<nPage) datasize[i]++;	// for "\n"
+        lpszvalue = (char*)malloc(sizeof(char)*(datasize[i]));
+        XDW_GetPageTextToMemory(h, i, lpszvalue, datasize[i], NULL);
+		strcat(all_lpszvalue, lpszvalue);
+		if (i < nPage) strcat(all_lpszvalue, "\n");
+        free(lpszvalue);
+    }
+
+	XDW_CloseDocumentHandle(h, NULL); // 文書ãƒãƒ³ãƒ‰ãƒ«ã‚’é–‰ã˜ã‚‹
+	return all_lpszvalue;
+}
+
+int xdwhb(const char* in_file, const char* out_file, char* hb, const char* stxt) {
+	int x = 18000;
+	int y = 1200;
+	int sz = 110;
+
+	char in_path[_MAX_PATH], out_path[_MAX_PATH];
+	_fullpath(in_path, in_file, _MAX_PATH);
+	_fullpath(out_path, out_file, _MAX_PATH);
+
+	XDW_DOCUMENT_HANDLE h = NULL;
+	XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE};
+
+	int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
+	if (api_result < 0) return api_result;
+
+	XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
+	XDW_GetDocumentInformation(h, &info);
+
+    XDW_FOUND_HANDLE pFoundHandle = NULL;
+	for (int i = 0; i < info.nPages; i++) {
+		api_result = XDW_FindTextInPage(h, i + 1, stxt, NULL, &pFoundHandle, NULL);
+		if (pFoundHandle == NULL) continue;
+
+		XDW_ANNOTATION_HANDLE annoation;
+		int api_result = XDW_AddAnnotation(h, XDW_AID_TEXT, i + 1, x, y, NULL, &annoation, NULL);
+		if (api_result < 0) return api_result;
+
+		api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_Text, XDW_ATYPE_STRING, hb, 0, NULL);
+		api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_FontSize, XDW_ATYPE_INT, (char*)&sz, 0, NULL);
+
+		int color = XDW_COLOR_NONE;
+		api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_BackColor, XDW_ATYPE_INT, (char*)&color, 0, NULL);
+	}
+
+	XDW_SaveDocument(h, NULL);
+	XDW_CloseDocumentHandle(h, NULL);
+
+	api_result = XDW_OptimizeDocument(in_path, out_path, NULL);
+	return 0;
+}
+
+int xdwbiko(const char* in_file, const int page, const int r, char* biko, char* kubun) {
+	int x1 = 2000;
+	int y1 = 4680 + r * 2720;
+	int sz = 90;
+	int x2 = 18950;
+	int y2 = 5090 + r * 2720;
+
+	char in_path[_MAX_PATH];
+	_fullpath(in_path, in_file, _MAX_PATH);
+
+	XDW_DOCUMENT_HANDLE h = NULL;
+	XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE};
+
+	int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode);
+	if (api_result < 0) return api_result;
+
+	XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0};
+	XDW_GetDocumentInformation(h, &info);
+
+	XDW_ANNOTATION_HANDLE annoation1, annoation2;
+	int color = XDW_COLOR_NONE;
+
+	api_result = XDW_AddAnnotation(h, XDW_AID_TEXT, page, x1, y1, NULL, &annoation1, NULL);
+	if (api_result < 0) return api_result;
+	api_result = XDW_AddAnnotation(h, XDW_AID_TEXT, page, x2, y2, NULL, &annoation2, NULL);
+	if (api_result < 0) return api_result;
+
+	api_result = XDW_SetAnnotationAttribute(h, annoation1, XDW_ATN_Text, XDW_ATYPE_STRING, biko, 0, NULL);
+	api_result = XDW_SetAnnotationAttribute(h, annoation1, XDW_ATN_FontSize, XDW_ATYPE_INT, (char*)&sz, 0, NULL);
+	api_result = XDW_SetAnnotationAttribute(h, annoation1, XDW_ATN_BackColor, XDW_ATYPE_INT, (char*)&color, 0, NULL);
+
+	api_result = XDW_SetAnnotationAttribute(h, annoation2, XDW_ATN_Text, XDW_ATYPE_STRING, kubun, 0, NULL);
+	api_result = XDW_SetAnnotationAttribute(h, annoation2, XDW_ATN_FontSize, XDW_ATYPE_INT, (char*)&sz, 0, NULL);
+	api_result = XDW_SetAnnotationAttribute(h, annoation2, XDW_ATN_BackColor, XDW_ATYPE_INT, (char*)&color, 0, NULL);
+
+	XDW_SaveDocument(h, NULL);
+	XDW_CloseDocumentHandle(h, NULL);
+
+	return 0;
+}
+
+*/
+import "C"
+
+import (
+	"bufio"
+	"encoding/csv"
+    "fmt"
+	"flag"
+    "io/ioutil"
+    "log"
+    "os"
+	"regexp"
+	"strconv"
+    "strings"
+	"time"
+
+	"golang.org/x/text/encoding/japanese"
+	"golang.org/x/text/transform"
+)
+
+// Constants
+const (
+	version = "0.3"
+	default_ccsvfile = "chosairai.csv"
+	default_icsvfile = "ikenshoirai.csv"
+	default_cxdwfile = "KBPC116G.xdw"
+	default_ixdwfile = "KBPB116G.xdw"
+	default_tmpxdw = "tmp.xdw"
+	default_cout = "outc.xdw"
+	default_iout = "outi.xdw"
+	default_lout = "xyz.csv"
+)
+
+var (
+    hbi, hbc string // 発番
+	start time.Time
+
+	flg_hb int
+	flg_time bool
+
+	re_hhsno, re_date, re_city, re_name, re_zensp *regexp.Regexp
+)
+
+func init(){
+    os.Remove(default_cout)
+    os.Remove(default_iout)
+    os.Remove(default_lout)
+
+	re_hhsno = regexp.MustCompile(`0[1238]\d{8}`)
+	re_date  = regexp.MustCompile(`((明治)|(大正)|(昭和)|(å¹³æˆ)|(令和)).{1,2}å¹´.\d月.\dæ—¥`)
+	re_city  = regexp.MustCompile(`(((å¹³æˆ)|(令和)).{1,2}å¹´.\d月.\dæ—¥){2}...`)
+	re_name  = regexp.MustCompile(`0[1238]\d{8}.*((å¹³æˆ)|(令和)).{1,2}å¹´.\d月.\dæ—¥`)
+	re_zensp = regexp.MustCompile(` {2,}`)
+}
+
+func main() {
+	start = time.Now()
+    /* PRINT HEADER */
+    fmt.Println("=======================================")
+    fmt.Println(" 備考を...ã™ã‚‹")
+    fmt.Printf("         - bk [ver %s] -\n", version)
+    fmt.Println("=======================================\n")
+
+
+	/* INITIALIZE FLAGS */
+	today := time.Now().Format("20060102")
+
+	flag.StringVar(&today, "d", today, "irai ymd (default today)")
+	flag.IntVar(&flg_hb, "b", 0, "set hatsuban (default 0)")
+	flag.BoolVar(&flg_time, "t", false, "print time")
+
+	flag.Parse()
+
+    /* USER INPUT */
+	hbi = fmt.Sprintf("%d", flg_hb)
+	if flg_hb == 0 {
+		fmt.Print("発番 > ")
+		fmt.Scan(&hbi)
+	}
+	i, err := strconv.Atoi(hbi)
+	if err != nil {
+		log.Fatal(err)
+	}
+	hbc = fmt.Sprintf("%d", i + 1)
+
+    /* READ BIKO FROM CSV */
+	bhash, err := getBiko_fromCSV(default_ccsvfile, today)
+	if err != nil {
+		log.Fatal(err)
+	}
+	fmt.Println(" 備考データ読込")
+	step_start := print_time(start)
+
+    /* READ KUBUN FROM CSV */
+	khash, err := getKubun_fromCSV(default_icsvfile, bhash)
+	if err != nil {
+		log.Fatal(err)
+	}
+	fmt.Println(" 申請区分データ読込")
+	step_start = print_time(start)
+
+	/* INSERT BIKO */
+	var ctxt []string
+	copy_tmp(default_cxdwfile)
+	for p, t := range xdw2txt(default_cxdwfile) {
+		for r, hno := range re_hhsno.FindAllString(t, -1) {
+			if bk, ok := bhash[hno]; ok {
+				C.xdwbiko(C.CString(default_tmpxdw), C.int(p + 1), C.int(r), C.CString(bk), C.CString(khash[hno]))
+			}
+		}
+		ctxt = append(ctxt, t)
+	}
+	fmt.Println(" 備考ã¨ç”³è«‹åŒºåˆ†ã‚’追加")
+
+	/* INSERT HATSU-BAN & OPTIMIZE */
+	stxt, _, _ := transform.String(japanese.ShiftJIS.NewEncoder(), "大仙広介")
+    C.xdwhb(C.CString(default_tmpxdw), C.CString(default_cout), C.CString(hbi), C.CString(stxt))
+	fmt.Println(" 発番追加(調査ä¾é ¼ãƒ•ァイル)")
+	step_start = print_time(step_start)
+
+	copy_tmp(default_ixdwfile)
+    C.xdwhb(C.CString(default_tmpxdw), C.CString(default_iout), C.CString(hbc), C.CString(stxt))
+	fmt.Println(" 発番追加( æ„見書ä¾é ¼ãƒ•ァイル)")
+	step_start = print_time(step_start)
+
+	/* CHOSA IRAI LIST */
+	f, err := os.Create(default_lout)
+	if err != nil {
+		log.Fatal(err)
+	}
+	defer f.Close()
+	w := bufio.NewWriter(transform.NewWriter(f, japanese.ShiftJIS.NewEncoder()))
+
+	header := []string{"申請日", "被ä¿ç•ª", "æ°å", "生年月日",  "市町æ‘", "-", "-", "-", "ä¾é ¼æ—¥"}
+	fmt.Fprintln(w, strings.Join(header, ","))
+
+	var req string
+	for _, txt := range ctxt {
+		str := strings.TrimRight(txt, " ")
+		if strings.HasSuffix(str, "ä¾é ¼æ›¸") {
+			req = re_date.FindString(str)
+			req = strings.Replace(req, " ", "", -1)
+		} else {
+			row := strings.Split(str, "〒")
+			for i := 0; i < len(row) - 1; i++ {
+				var app, hhsno, name, birth, city, empty string
+
+				d := re_date.FindAllString(row[i], -1)
+				if len(d) > 0 {
+					birth = strings.Replace(d[0], " ", "", -1)
+					app   = strings.Replace(d[1], " ", "", -1)
+				}
+				if re_hhsno.MatchString(row[i]) {
+					hhsno = "=\"" + re_hhsno.FindString(row[i]) + "\""
+				}
+				if re_name.MatchString(row[i]) {
+					n := []rune(re_name.FindString(row[i]))
+					kana := string(n[10:36])
+					kana = strings.Trim(kana, " ")
+					name = string(n[37:55])
+					name = strings.Trim(name, " ")
+					name = re_zensp.ReplaceAllString(name, "")
+					name += "(" + kana + ")"
+				}
+				if re_city.MatchString(row[i]) {
+					c := []rune(re_city.FindString(row[i]))
+					city = string(c[len(c)-3:])
+					city = strings.Replace(city, "仙北郡", "美郷町", -1)
+				}
+
+				if hhsno != "" {
+					fields := []string{app, hhsno, name, birth, city, empty, empty, empty, req}
+					fmt.Fprintln(w, strings.Join(fields, ","))
+				}
+			}
+		}
+	}
+	w.Flush()
+
+	fmt.Println(" 調査ä¾é ¼ãƒªã‚¹ãƒˆä½œæˆ")
+	step_start = print_time(step_start)
+
+	/* CLEAN */
+    os.Remove(default_tmpxdw)
+	fmt.Println(" 終了")
+	step_start = print_time(step_start)
+}
+
+func getBiko_fromCSV(file, date string) (bikohash map[string]string, err error) {
+	bikohash = make(map[string]string)
+
+	data, err := ioutil.ReadFile(file)
+	if err != nil {
+		return bikohash, err
+	}
+
+	r := csv.NewReader(strings.NewReader(string(data)))
+	records, err := r.ReadAll()
+	if err != nil {
+		return bikohash, err
+	}
+
+	for _, record := range records {
+		hno := strings.TrimSpace(record[0])
+		iraiymd := strings.TrimSpace(record[5])
+		if iraiymd != date {
+			continue
+		}
+		bikohash[hno] = record[3]
+	}
+
+	return bikohash, nil
+}
+
+func getKubun_fromCSV(file string, hhshash map[string]string) (kubunhash map[string]string, err error) {
+	kubunhash = make(map[string]string)
+	ymdhash := make(map[string]string)
+
+	data, err := ioutil.ReadFile(file)
+	if err != nil {
+		return kubunhash, err
+	}
+
+	r := csv.NewReader(strings.NewReader(string(data)))
+	records, err := r.ReadAll()
+	if err != nil {
+		return kubunhash, err
+	}
+
+	for _, record := range records {
+		hno := strings.TrimSpace(record[0])
+		if _, ok := hhshash[hno]; !ok {
+			continue
+		}
+		if ymd, ok := ymdhash[hno]; !ok || ymd < record[8] {
+			ymdhash[hno] = record[8]
+		}
+		var buf string
+		switch strings.TrimSpace(record[9]) {
+		case "01":
+			buf = "[æ–°è¦]"
+		case "02":
+			buf = "[æ›´æ–°]"
+		case "10":
+			buf = "[支介]"
+		case "05":
+			buf = "[区変]"
+		case "03":
+			buf = "[転入]"
+		case "09":
+			buf = "[証交]"
+		}
+		kubun, _, _ := transform.String(japanese.ShiftJIS.NewEncoder(), buf)
+		kubunhash[hno] = kubun
+	}
+
+	return kubunhash, nil
+}
+
+
+func copy_tmp(file string) error {
+    os.Remove(default_tmpxdw)
+	b, err := ioutil.ReadFile(file)
+	if err != nil {
+		return err
+	}
+	if err := ioutil.WriteFile(default_tmpxdw, b, 0644); err != nil {
+		return err
+	}
+	return nil
+}
+
+func xdw2txt(file string) (txt []string) {
+	s := C.GoString(C.xdw2txt(C.CString(file)))
+	r := strings.NewReader(s)
+	tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder())
+	buf := bufio.NewScanner(tr)
+	for buf.Scan() {
+		txt = append(txt, buf.Text())
+	}
+	return
+}
+
+func print_time(t time.Time) time.Time {
+	now := time.Now()
+	if !flg_time {
+		return now
+	}
+	elapsed := now.Sub(t)
+	total := now.Sub(start)
+	s := fmt.Sprintf("---- Elapsed: %v (total = %v) @ %02d:%02d\n", elapsed, total, now.Hour(), now.Minute())
+	fmt.Print(s)
+	return now
+}
+
Binary file src/kaigo/Perori/export.mdb has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Perori/make.bat	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,15 @@
+@echo off
+set ACCESS="C:\Program Files\Microsoft Office\Office15\MSACCESS.EXE"
+set MDB=C:\Users\KAIGO\Desktop\Perori\export.mdb
+set OUTPUT=ˆÓŒ©‘ˆË—Šˆê——.html
+
+%ACCESS% %MDB% /nostartup /x data
+
+copy C:\Users\KAIGO\Documents\chosairai.csv .
+copy C:\Users\KAIGO\Documents\ikenshoirai.csv .
+
+rem perori.exe -d -c hoge.csv -b fuga.db -r 20202014 > a.html
+perori_go.exe > %OUTPUT%
+addtoday_go.exe %OUTPUT%
+rem start %OUTPUT%
+
Binary file src/kaigo/Perori/manual.docx has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Perori/perori.go	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,386 @@
+package main
+
+import (
+	"flag"
+	"compress/gzip"
+	"encoding/csv"
+	"fmt"
+	"html/template"
+	"io/ioutil"
+	"log"
+	"os"
+	"strings"
+	"sort"
+	"time"
+
+	"golang.org/x/text/encoding/japanese"
+	"golang.org/x/text/transform"
+)
+
+var debug_log bool
+
+// Constants
+const version =  "0.2"
+const default_dbfile =  "ikenshoirai.db"
+const default_csvfile = "ikenshoirai.csv"
+
+const tpl = `
+<!DOCTYPE html> <html>
+	<head> 
+	<style type="text/css">
+		body { font-size: 9pt; margin-left: 0px;}
+		h2 { font-size: 11pt; margin-bottom: 1px; background-color: #ccccff; padding-left: 5px; }
+		h3 { font-size: 11pt; margin-bottom: 1px; background-color: #f0a8a8; padding-left: 10px; }
+		table, th, td { border: 0.3px #c0c0c0 solid; border-collapse:collapse; }
+		table { margin-bottom: 5px; margin-left: 15px; }
+		th { background-color: #ccffcc; }
+		hr { page-break-before: always; }
+	</style>
+	<title> - </title>
+	</head>
+	<body>
+
+	<h2> List <small>( Date = {{.Ymd}} / N = {{.NHhs}} / Dr = {{.NDr}} )</small> </h2>
+	{{range .Doctors}}
+		<h3>{{.Name}}<small> ..... {{.Hp}}:{{.Senmon}}</small></h3>
+		{{range .Clients}}
+		<table>
+			<tr>
+				<td width=140 style="background-color: #98f0f0; padding-left: 10px;">{{.Name}}</td>
+				<td width=120 align=center>{{.Kubun}} {{.Ymd}}</td>
+				<td width=480 style="padding-left: 10px;">
+
+				{{if .Prev.Ymd}}
+					{{if eq .DrId .Prev.DrId}}
+						{{str2cp932 "★ 継続 -"}} {{.Prev.Ymd}}
+					{{else}}
+						{{.Prev.Dr}} {{.Prev.Ymd}}
+					{{end}}
+				{{else}}
+					New !
+				{{end}}
+
+				</td>
+				<td width=80 align=center>{{.Hhsno}}</td>
+			</tr>
+			<tr>
+				<td colspan=4 style="font-family: serif; font-size: 8pt; padding-left: 10px;">{{.Biko}}</td>
+			</tr>
+
+		</table>
+		{{end}}
+	{{end}}
+
+	<hr />
+	{{$hpno := 0}}
+	<h2> N by Hp </h2>
+	<table> 
+	<tr> <th> no </th> <th> hp </th> <th width=60> n </th> </tr>
+	{{range $hp, $n := .Hp}}
+		<tr>
+			{{$hpno = add1 $hpno}}
+			<td align=right style="padding-right: 5px;"> {{$hpno}} </td>
+			<td style="padding-left: 5px;"> {{$hp}} </td> 
+		    <td align=right style="padding-right: 5px;"> {{$n}} </td> 
+		 </tr>
+	{{end}}
+	<tr> <td></td> <td align=right> sum &gt &gt &gt</td> <td align=right style="padding-right: 5px;"> <b> {{.HpSum}} </b> </td> </tr>
+	</table>
+	</body>
+</html>`
+
+
+// Define Types
+type PrevSinsei struct {
+	Biko string
+	DrId string
+	Dr string
+	IraiYmd string
+	Ymd string
+	Kubun string
+}
+
+type Sinsei struct {
+	Hhsno string
+	Name string
+	Biko string
+	DrId string
+	Dr string
+	DrKana string
+	Hp string
+	IraiYmd string
+	Ymd string
+	Kubun string
+	Senmon string
+	Prev PrevSinsei
+}
+
+func (s *Sinsei) SetPrev(prev PrevSinsei) {
+	s.Prev = prev
+}
+
+func (s Sinsei) String() string {
+	return strings.Join([]string{s.Hhsno, s.Name, s.Ymd, s.Kubun, s.Dr, s.Hp, s.Senmon, s.IraiYmd, s.Biko}, ",")
+}
+
+func (s *Sinsei) Humanize() {
+	var buf string
+
+	switch s.Kubun {
+	case "01":
+		buf = "æ–°è¦"
+	case "02":
+		buf = "æ›´æ–°"
+	case "10":
+		buf = "支介"
+	case "05":
+		buf = "区変"
+	case "03":
+		buf = "転入"
+	case "09":
+		buf = "証交"
+	}
+	s.Kubun, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), buf)
+
+	s.Ymd = strings.Join([]string{s.Ymd[4:6], s.Ymd[6:8]}, ".")
+}
+
+type Doctor struct {
+	Id string
+	Name string
+	Kana string
+	Hp	string
+	Senmon string
+	Clients []Sinsei
+}
+
+func (d *Doctor) AddClient(sinsei Sinsei) {
+	d.Clients = append(d.Clients, sinsei)
+}
+
+func (d Doctor) String() string {
+	return d.Name
+}
+
+// Main
+func main() {
+	var csvfile, dbfile, date string
+
+	today := time.Now().Format("20060102")
+
+	flag.StringVar(&csvfile, "c", default_csvfile, "csv file")
+	flag.StringVar(&dbfile, "b", default_dbfile, "db file")
+	flag.StringVar(&date, "r", today, "Ikensho Irai YMD")
+	flag.BoolVar(&debug_log, "d", false, "print debug-log (stderr)")
+	flag.Parse()
+
+	csvdata, hhshash, err := getdata_fromCSV(csvfile, date)
+	if err != nil {
+		log.Fatal(err)
+	}
+	print_debug_log(fmt.Sprintf("csvdata: n=%d", len(csvdata)))	//
+	print_debug_log(fmt.Sprintf("hhshash: n=%d", len(hhshash)))	//
+
+	dbdata, err := getdata_fromDB(dbfile, hhshash)
+	if err != nil {
+		log.Fatal(err)
+	}
+	print_debug_log(fmt.Sprintf("dbdata: n=%d", len(dbdata)))	//
+
+	dbdata = append(dbdata, csvdata...)
+	print_debug_log(fmt.Sprintf("dbdata: n=%d", len(dbdata)))	//
+
+	sort.Slice(dbdata, func(i, j int) bool {
+		if dbdata[i].Hhsno != dbdata[j].Hhsno {
+			return dbdata[i].Hhsno < dbdata[j].Hhsno
+		}
+		if dbdata[i].Ymd != dbdata[j].Ymd {
+			return dbdata[i].Ymd > dbdata[j].Ymd
+		}
+		return false
+	})
+
+	var recentdata []Sinsei
+	prevhash := make(map[string]PrevSinsei)
+	hhscnt := make(map[string]int)
+	for _, ss := range dbdata {
+		ss.Humanize()
+		if n := hhscnt[ss.Hhsno]; n == 1 {
+			prevhash[ss.Hhsno] = PrevSinsei{
+				Biko: ss.Biko,
+				DrId: ss.DrId,
+				Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")",
+				IraiYmd: ss.IraiYmd,
+				Ymd: ss.Ymd,
+				Kubun: ss.Kubun,
+			}
+		} else {
+			recentdata = append(recentdata, ss)
+			hhscnt[ss.Hhsno]++;
+		}
+	}
+	print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata)))	//
+
+	doctorhash := make(map[string]Doctor)
+	hpcnt := make(map[string]int)
+	var hpcntsum int
+	for _, ss := range recentdata {
+		ss.SetPrev(prevhash[ss.Hhsno])
+		if d, ok := doctorhash[ss.DrId]; !ok {
+			doctorhash[ss.DrId] = Doctor{
+				Id: ss.DrId,
+				Name: ss.Dr,
+				Kana: ss.DrKana,
+				Hp: ss.Hp,
+				Senmon: ss.Senmon,
+				Clients: []Sinsei{ss},
+			}
+		} else {
+			d.AddClient(ss)
+			doctorhash[ss.DrId] = d
+		}
+		hpcnt[ss.Hp]++
+		hpcntsum++
+	}
+
+	var doctors []Doctor
+	for _, dr := range doctorhash {
+		doctors = append(doctors, dr)
+	}
+	sort.Slice(doctors, func(i, j int) bool {
+		return doctors[i].Kana < doctors[j].Kana
+	})
+
+	irai := struct {
+		Ymd string
+		NHhs int
+		NSinsei int
+		NDr int
+		Doctors []Doctor
+		Hp map[string]int
+		HpSum int
+	}{
+		Ymd: strings.Join([]string{date[0:4], date[4:6], date[6:8]}, "."),
+		NHhs: len(hhshash),
+		NSinsei: len(dbdata),
+		NDr: len(doctors),
+		Doctors: doctors,
+		Hp: hpcnt,
+		HpSum: hpcntsum,
+	}
+
+	funcmap := template.FuncMap{
+		"shorten": shorten,
+		"str2cp932": str2cp932,
+		"add1": func(a int) int { return a + 1 },
+	}
+
+	t, err := template.New("webpage").Funcs(funcmap).Parse(tpl)
+	if err != nil {
+		log.Fatal(err)
+	}
+
+	err = t.Execute(os.Stdout, irai)
+	if err != nil {
+		log.Fatal(err)
+	}
+}
+
+// Utility functions
+func csv2sinsei(record []string) Sinsei {
+	return Sinsei{
+		Hhsno:   strings.TrimSpace(record[0]),
+		Name:    strings.TrimSpace(record[1]),
+		Biko:    strings.TrimSpace(record[2]),
+		DrId:    strings.TrimSpace(record[3]),
+		Dr:      strings.TrimSpace(record[4]),
+		DrKana:  strings.TrimSpace(record[5]),
+		Hp:      strings.TrimSpace(record[6]),
+		IraiYmd: strings.TrimSpace(record[7]),
+		Ymd:     strings.TrimSpace(record[8]),
+		Kubun:   strings.TrimSpace(record[9]),
+		Senmon:  strings.TrimSpace(record[10]),
+	}
+}
+
+func getdata_fromCSV(file, date string) (sinsei []Sinsei, hhshash map[string]bool, err error) {
+	hhshash = make(map[string]bool)
+
+	data, err := ioutil.ReadFile(file)
+	if err != nil {
+		return sinsei, hhshash, err
+	}
+
+	r := csv.NewReader(strings.NewReader(string(data)))
+	records, err := r.ReadAll()
+	if err != nil {
+		return sinsei, hhshash, err
+	}
+
+	for _, record := range records {
+		ss := csv2sinsei(record)
+		if ss.IraiYmd != date {
+			continue
+		}
+		hhshash[ss.Hhsno] = true
+		sinsei = append(sinsei, ss)
+	}
+
+	return sinsei, hhshash, nil
+}
+
+func getdata_fromDB(file string, hhshash map[string]bool) (sinsei []Sinsei, err error) {
+	f, err := os.Open(file)
+	if err != nil {
+		return sinsei, err
+	}
+	defer f.Close()
+
+	zr, err := gzip.NewReader(f)
+	if err != nil {
+		return sinsei, err
+	}
+
+	data, err := ioutil.ReadAll(zr)
+	if err != nil {
+		return sinsei, err
+	}
+
+	if err := zr.Close(); err != nil {
+		return sinsei, err
+	}
+
+	r := csv.NewReader(strings.NewReader(string(data)))
+	records, err := r.ReadAll()
+	if err != nil {
+		return sinsei, err
+	}
+
+	for _, record := range records {
+		hno := strings.TrimSpace(record[0])
+		if _, ok := hhshash[hno]; ok {
+			sinsei = append(sinsei, csv2sinsei(record))
+		}
+	}
+
+	return sinsei, nil
+}
+
+func shorten(msg string, length int) string {
+	if len(msg) > length {
+		msg = msg[0:length] + "..."
+	}
+	return msg
+}
+
+func str2cp932(s string) string {
+	s, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), s)
+	return s
+}
+
+func print_debug_log(msg string) {
+	if debug_log {
+		fmt.Fprintf(os.Stderr, "%s\n", msg)
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Perori/xdw_api.h	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,1121 @@
+/* File: xdw_api.h
+// Copyright(C) 1999-2013 by Fuji Xerox Co., Ltd. All right reserved.  
+*/
+
+#ifndef XDW_API_H
+#define XDW_API_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#ifndef XDWAPI_DECLARATIONS
+#define XDWAPI_DECLARATIONS
+
+#ifdef _WIN64
+#ifndef XDW_DISABLE_PRAGMA_PACK
+#pragma pack(push, xdwapi_enter_parser)
+#pragma pack(8)
+#endif	/* XDW_DISABLE_PRAGMA_PACK */
+#endif	/* _WIN64 */
+
+#define XDWAPI __stdcall
+
+#define XDW_GI_VERSION            1
+#define XDW_GI_INSTALLPATH        2
+#define XDW_GI_BINPATH            3
+#define XDW_GI_PLUGINPATH         4
+#define XDW_GI_FOLDERROOTPATH     5
+#define XDW_GI_USERFOLDERPATH     6
+#define XDW_GI_SYSTEMFOLDERPATH   7
+#define XDW_GI_RECEIVEFOLDERPATH  8
+#define XDW_GI_SENDFOLDERPATH     9
+#define XDW_GI_DWINPUTPATH       10
+#define XDW_GI_DWDESKPATH        11
+#define XDW_GI_DWVIEWERPATH      12
+#define XDW_GI_DWVLTPATH         13
+#define XDW_GI_DWDESK_FILENAME_DELIMITER 1001
+#define XDW_GI_DWDESK_FILENAME_DIGITS    1002
+
+
+#define XDW_PGT_NULL              0
+#define XDW_PGT_FROMIMAGE         1
+#define XDW_PGT_FROMAPPL          2
+
+#define XDW_MAXPATH             255
+#define XDW_MAXINPUTIMAGEPATH   127
+
+#define XDW_OPEN_READONLY       0
+#define XDW_OPEN_UPDATE         1
+
+#define XDW_AUTH_NONE			0
+#define XDW_AUTH_NODIALOGUE		1
+#define XDW_AUTH_CONDITIONAL_DIALOGUE		2
+
+#define XDW_PERM_DOC_EDIT		0x02
+#define XDW_PERM_ANNO_EDIT		0x04
+#define XDW_PERM_PRINT			0x08
+#define XDW_PERM_COPY			0x10
+
+#define XDW_DT_DOCUMENT			0
+#define XDW_DT_BINDER			1
+#define XDW_DT_CONTAINER		2
+
+#define XDW_ROT_0				0
+#define XDW_ROT_90              90
+#define XDW_ROT_180             180
+#define XDW_ROT_270             270
+
+#define XDW_CREATE_FITDEF		0
+#define XDW_CREATE_FIT			1
+#define XDW_CREATE_USERDEF		2
+#define XDW_CREATE_USERDEF_FIT	3
+#define XDW_CREATE_FITDEF_DIVIDEBMP 4
+
+#define XDW_COMPRESS_NORMAL				0
+#define XDW_COMPRESS_LOSSLESS			1
+#define XDW_COMPRESS_HIGHQUALITY		2
+#define XDW_COMPRESS_HIGHCOMPRESS		3
+#define XDW_COMPRESS_NOCOMPRESS			4
+#define XDW_COMPRESS_JPEG				5
+#define XDW_COMPRESS_PACKBITS			6
+#define XDW_COMPRESS_G4					7
+#define XDW_COMPRESS_MRC_NORMAL			8
+#define XDW_COMPRESS_MRC_HIGHQUALITY	9
+#define XDW_COMPRESS_MRC_HIGHCOMPRESS	10
+#define XDW_COMPRESS_MRC				11
+#define XDW_COMPRESS_JPEG_TTN2			12
+
+#define XDW_CONVERT_MRC_ORIGINAL  0
+#define XDW_CONVERT_MRC_OS        1
+
+#define XDW_IMAGE_DIB		0
+#define XDW_IMAGE_TIFF		1
+#define XDW_IMAGE_JPEG		2
+#define XDW_IMAGE_PDF		3
+
+#define XDW_CREATE_HCENTER  0
+#define XDW_CREATE_LEFT     1
+#define XDW_CREATE_RIGHT    2
+
+#define XDW_CREATE_VCENTER  0
+#define XDW_CREATE_TOP      1
+#define XDW_CREATE_BOTTOM   2
+
+#define XDW_CREATE_DEFAULT_SIZE 0
+#define XDW_CREATE_A3_SIZE		1
+#define XDW_CREATE_2A0_SIZE		2
+
+#define	XDW_LINE_NONE			0
+#define XDW_LINE_BEGINNING		1
+#define	XDW_LINE_ENDING			2
+#define XDW_LINE_BOTH			3
+#define XDW_LINE_WIDE_POLYLINE	0
+#define XDW_LINE_POLYLINE		1
+#define XDW_LINE_POLYGON		2
+
+#define XDW_BORDER_TYPE_SOLID	0
+#define XDW_BORDER_TYPE_DOT		1
+#define XDW_BORDER_TYPE_DASH	2
+#define XDW_BORDER_TYPE_DASHDOT 3
+#define XDW_BORDER_TYPE_DOUBLE	4
+
+#define XDW_STAMP_AUTO			0
+#define XDW_STAMP_MANUAL		1
+#define XDW_STAMP_NO_BASISYEAR	0
+#define XDW_STAMP_BASISYEAR		1
+#define XDW_STAMP_DATE_YMD		0
+#define XDW_STAMP_DATE_DMY		1
+
+#define	XDW_PAGEFORM_HEADER			0
+#define	XDW_PAGEFORM_FOOTER			1
+#define XDW_PAGEFORM_TOPIMAGE		2
+#define	XDW_PAGEFORM_BOTTOMIMAGE	3
+#define XDW_PAGEFORM_PAGENUMBER		4
+
+#define XDW_PAGEFORM_STAY	0
+#define XDW_PAGEFORM_REMOVE	1
+
+#define	XDW_ALIGN_LEFT		0
+#define	XDW_ALIGN_HCENTER	1
+#define	XDW_ALIGN_RIGHT		2
+#define XDW_ALIGN_TOP		0
+#define XDW_ALIGN_BOTTOM	1
+#define	XDW_ALIGN_VCENTER	2
+
+#define	XDW_PAGERANGE_ALL		0
+#define	XDW_PAGERANGE_SPECIFIED	1
+
+#define XDW_CRTP_BEGINNING              1
+#define XDW_CRTP_PRINTING               2
+#define XDW_CRTP_PAGE_CREATING          3
+#define XDW_CRTP_ORIGINAL_APPENDING     4
+#define XDW_CRTP_WRITING                5
+#define XDW_CRTP_ENDING                 6
+#define XDW_CRTP_CANCELING              7
+#define XDW_CRTP_FINISHED               8
+#define XDW_CRTP_CANCELED               9
+
+#define XDW_AID_FUSEN           32794
+#define XDW_AID_TEXT            32785
+#define XDW_AID_STAMP           32819
+#define XDW_AID_STRAIGHTLINE    32828
+#define XDW_AID_RECTANGLE       32829
+#define XDW_AID_ARC             32830
+#define XDW_AID_POLYGON			32834
+#define XDW_AID_MARKER          32795
+#define XDW_AID_LINK            49199
+#define XDW_AID_PAGEFORM        32814
+#define XDW_AID_OLE             32783
+#define XDW_AID_BITMAP          32831
+#define XDW_AID_RECEIVEDSTAMP	32832
+#define XDW_AID_CUSTOM			32837
+#define XDW_AID_TITLE			32838
+#define	XDW_AID_GROUP			32839
+
+#define XDW_ATYPE_INT		0
+#define XDW_ATYPE_STRING	1
+#define	XDW_ATYPE_DATE		2
+#define XDW_ATYPE_BOOL		3
+#define XDW_ATYPE_OCTS		4
+#define XDW_ATYPE_OTHER		999
+
+#define XDW_SUMMARY_INFO	1
+#define XDW_USER_DEF		2
+#define XDW_ANNOTATION		4
+
+#define XDW_SIZE_FREE			0
+#define XDW_SIZE_A3_PORTRAIT	1
+#define XDW_SIZE_A3_LANDSCAPE	2
+#define XDW_SIZE_A4_PORTRAIT	3
+#define XDW_SIZE_A4_LANDSCAPE	4
+#define XDW_SIZE_A5_PORTRAIT	5
+#define XDW_SIZE_A5_LANDSCAPE	6
+#define XDW_SIZE_B4_PORTRAIT	7
+#define XDW_SIZE_B4_LANDSCAPE	8
+#define XDW_SIZE_B5_PORTRAIT	9
+#define XDW_SIZE_B5_LANDSCAPE	10
+
+#define XDW_BINDER_COLOR_0		0
+#define XDW_BINDER_COLOR_1		1
+#define XDW_BINDER_COLOR_2		2
+#define XDW_BINDER_COLOR_3		3
+#define XDW_BINDER_COLOR_4		4
+#define XDW_BINDER_COLOR_5		5
+#define XDW_BINDER_COLOR_6		6
+#define XDW_BINDER_COLOR_7		7
+#define XDW_BINDER_COLOR_8		8
+#define XDW_BINDER_COLOR_9		9
+#define XDW_BINDER_COLOR_10		10
+#define XDW_BINDER_COLOR_11		11
+#define XDW_BINDER_COLOR_12		12
+#define XDW_BINDER_COLOR_13		13
+#define XDW_BINDER_COLOR_14		14
+#define XDW_BINDER_COLOR_15		15
+
+#define XDW_REDUCENOISE_NONE	0
+#define XDW_REDUCENOISE_NORMAL	1
+#define XDW_REDUCENOISE_WEAK	2
+#define XDW_REDUCENOISE_STRONG	3
+
+#define XDW_PRIORITY_NONE			0
+#define XDW_PRIORITY_SPEED			1
+#define XDW_PRIORITY_RECOGNITION	2
+
+#define XDW_OCR_ENGINE_V4		1	// old name - should be here for compatibility
+#define XDW_OCR_ENGINE_DEFAULT	1
+#define XDW_OCR_ENGINE_WRP		2
+#define XDW_OCR_ENGINE_FRE		3
+#define XDW_OCR_ENGINE_FRE_MULTI		4
+
+#define XDW_OCR_LANGUAGE_AUTO				-1
+#define XDW_OCR_LANGUAGE_JAPANESE			0
+#define XDW_OCR_LANGUAGE_ENGLISH			1
+
+#define XDW_OCR_MULTIPLELANGUAGES_ENGLISH				0x02
+#define XDW_OCR_MULTIPLELANGUAGES_FRENCH				0x04
+#define XDW_OCR_MULTIPLELANGUAGES_SIMPLIFIED_CHINESE	0x08
+#define XDW_OCR_MULTIPLELANGUAGES_TRADITIONAL_CHINESE	0x10
+#define XDW_OCR_MULTIPLELANGUAGES_THAI					0x20
+#define XDW_OCR_MULTIPLELANGUAGES_JAPANESE				0x40
+#define XDW_OCR_MULTIPLELANGUAGES_KOREAN				0x80
+
+#define XDW_OCR_FORM_AUTO		0
+#define XDW_OCR_FORM_TABLE		1
+#define XDW_OCR_FORM_WRITING	2
+
+#define XDW_OCR_COLUMN_AUTO					0
+#define XDW_OCR_COLUMN_HORIZONTAL_SINGLE	1
+#define XDW_OCR_COLUMN_HORIZONTAL_MULTI		2
+#define XDW_OCR_COLUMN_VERTICAL_SINGLE		3
+#define XDW_OCR_COLUMN_VERTICAL_MULTI		4
+
+#define XDW_OCR_DOCTYPE_AUTO				0
+#define XDW_OCR_DOCTYPE_HORIZONTAL_SINGLE	1
+#define XDW_OCR_DOCTYPE_PLAINTEXT			2
+
+#define XDW_OCR_ENGINE_LEVEL_SPEED		1
+#define XDW_OCR_ENGINE_LEVEL_STANDARD	2
+#define XDW_OCR_ENGINE_LEVEL_ACCURACY	3
+
+#define XDW_OCR_MIXEDRATE_JAPANESE		1
+#define XDW_OCR_MIXEDRATE_BALANCED		2
+#define XDW_OCR_MIXEDRATE_ENGLISH		3
+
+#define XDW_PROTECT_PSWD	1
+#define XDW_PROTECT_PSWD128	3
+#define XDW_PROTECT_PKI		4
+#define XDW_PROTECT_STAMP	5
+#define XDW_PROTECT_CONTEXT_SERVICE	6
+#define XDW_PROTECT_PSWD256	7
+#define XDW_PROTECT_PKI256	8
+
+#define XDW_GPTI_TYPE_EMF		0
+#define XDW_GPTI_TYPE_OCRTEXT	1
+
+#define	XDW_IMAGE_MONO				0
+#define	XDW_IMAGE_COLOR				1
+#define	XDW_IMAGE_MONO_HIGHQUALITY	2
+
+#define XDW_SIGNATURE_STAMP	100
+#define XDW_SIGNATURE_PKI	102
+#define XDW_SIGNATURE_PKI_SHA256	105
+
+#define XDW_SIGNATURE_STAMP_DOC_NONE 0
+#define XDW_SIGNATURE_STAMP_DOC_NOEDIT 1
+#define XDW_SIGNATURE_STAMP_DOC_EDIT 2
+#define XDW_SIGNATURE_STAMP_DOC_BAD 3
+
+#define XDW_SIGNATURE_STAMP_STAMP_NONE 0
+#define XDW_SIGNATURE_STAMP_STAMP_TRUSTED 1
+#define XDW_SIGNATURE_STAMP_STAMP_NOTRUST 2
+
+#define XDW_SIGNATURE_STAMP_ERROR_OK 0
+#define XDW_SIGNATURE_STAMP_ERROR_NO_OPENING_CASE 1
+#define XDW_SIGNATURE_STAMP_ERROR_NO_SELFSTAMP 2
+#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_VALIDITY 3
+#define XDW_SIGNATURE_STAMP_ERROR_INVALID_DATA 4
+#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_MEMORY 100
+#define XDW_SIGNATURE_STAMP_ERROR_UNKNOWN 9999
+
+#define XDW_SIGNATURE_PKI_DOC_UNKNOWN 0
+#define XDW_SIGNATURE_PKI_DOC_GOOD 1
+#define XDW_SIGNATURE_PKI_DOC_MODIFIED 2
+#define XDW_SIGNATURE_PKI_DOC_BAD 3
+#define XDW_SIGNATURE_PKI_DOC_GOOD_TRUSTED 4
+#define XDW_SIGNATURE_PKI_DOC_MODIFIED_TRUSTED 5
+
+#define XDW_SIGNATURE_PKI_TYPE_LOW 0
+#define XDW_SIGNATURE_PKI_TYPE_MID_LOCAL 1
+#define XDW_SIGNATURE_PKI_TYPE_MID_NETWORK 2
+#define XDW_SIGNATURE_PKI_TYPE_HIGH_LOCAL 3
+#define XDW_SIGNATURE_PKI_TYPE_HIGH_NETWORK 4
+
+#define XDW_SIGNATURE_PKI_CERT_UNKNOWN 0
+#define XDW_SIGNATURE_PKI_CERT_OK 1
+#define XDW_SIGNATURE_PKI_CERT_NO_ROOT_CERTIFICATE 2
+#define XDW_SIGNATURE_PKI_CERT_NO_REVOCATION_CHECK 3
+#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY 4
+#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY_AT_SIGNED_TIME 5
+#define XDW_SIGNATURE_PKI_CERT_REVOKE_CERTIFICATE 6
+#define XDW_SIGNATURE_PKI_CERT_REVOKE_INTERMEDIATE_CERTIFICATE 7
+#define XDW_SIGNATURE_PKI_CERT_INVALID_SIGNATURE 8
+#define XDW_SIGNATURE_PKI_CERT_INVALID_USAGE 9
+#define XDW_SIGNATURE_PKI_CERT_UNDEFINED_ERROR 10
+
+#define XDW_SIGNATURE_PKI_ERROR_UNKNOWN 0
+#define XDW_SIGNATURE_PKI_ERROR_OK 1
+#define XDW_SIGNATURE_PKI_ERROR_BAD_PLATFORM 2
+#define XDW_SIGNATURE_PKI_ERROR_WRITE_REG_ERROR 3
+#define XDW_SIGNATURE_PKI_ERROR_BAD_TRUST_LEVEL 4
+#define XDW_SIGNATURE_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5
+#define XDW_SIGNATURE_PKI_ERROR_BAD_AUTO_IMPORT_CERT_FLAG 6
+#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CONFIG 7
+#define XDW_SIGNATURE_PKI_ERROR_NO_IMAGE_FILE 8
+#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CERT 9
+#define XDW_SIGNATURE_PKI_ERROR_NO_SIGN_CERT 10
+#define XDW_SIGNATURE_PKI_ERROR_NOT_USE_PRIVATE_KEY 11
+#define XDW_SIGNATURE_PKI_ERROR_INVALID 12
+#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN 13
+#define XDW_SIGNATURE_PKI_ERROR_REVOKE_CHECK_ERROR 14
+#define XDW_SIGNATURE_PKI_ERROR_OUT_OF_VALIDITY 15
+#define XDW_SIGNATURE_PKI_ERROR_NO_CERT 16
+#define XDW_SIGNATURE_PKI_ERROR_FAILURE_IMPOPT_CERT 17
+#define XDW_SIGNATURE_PKI_ERROR_NO_ROOT_CERT 18
+#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_SIZE 19
+#define XDW_SIGNATURE_PKI_ERROR_BAD_ARG 20
+#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_FORMAT 21
+
+#define XDW_SECURITY_PKI_ERROR_UNKNOWN 0
+#define XDW_SECURITY_PKI_ERROR_OK 1
+#define XDW_SECURITY_PKI_ERROR_BAD_PLATFORM 2
+#define XDW_SECURITY_PKI_ERROR_WRITE_REG_ERROR 3
+#define XDW_SECURITY_PKI_ERROR_BAD_TRUST_LEVEL 4
+#define XDW_SECURITY_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5
+#define XDW_SECURITY_PKI_ERROR_REVOKED 6
+#define XDW_SECURITY_PKI_ERROR_BAD_SIGN 7
+#define XDW_SECURITY_PKI_ERROR_REVOKE_CHECK_ERROR 8
+#define XDW_SECURITY_PKI_ERROR_OUT_OF_VALIDITY 9
+#define XDW_SECURITY_PKI_ERROR_NO_CERT 10
+#define XDW_SECURITY_PKI_ERROR_FAILURE_IMPORT_CERT 11
+#define XDW_SECURITY_PKI_ERROR_NO_ROOT_CERT 12
+#define XDW_SECURITY_PKI_ERROR_BAD_CERT_FORMAT 13
+#define XDW_SECURITY_PKI_ERROR_BAD_CERT_USAGE 14
+#define XDW_SECURITY_PKI_ERROR_CA_CERT_IS_REVOKED 15
+#define XDW_SECURITY_PKI_ERROR_TOO_MANY_CERT 16
+
+#define XDW_IGNORE_CASE      0x02
+#define XDW_IGNORE_WIDTH     0x04
+#define XDW_IGNORE_HIRAKATA  0x08
+
+#define XDW_STARCH 1
+#define XDW_STARCH_OFF 0
+
+#define XDW_TEXT_UNKNOWN  0
+#define XDW_TEXT_MULTIBYTE  1
+#define XDW_TEXT_UNICODE  2
+#define XDW_TEXT_UNICODE_IFNECESSARY  3
+
+#define XDW_HGLOBAL	void*
+
+typedef struct { int dummy; } *XDW_DOCUMENT_HANDLE;
+typedef struct { int dummy; } *XDW_CREATE_HANDLE;
+typedef struct { int dummy; } *XDW_ANNOTATION_HANDLE;
+typedef struct { int dummy; } *XDW_FOUND_HANDLE;
+
+typedef unsigned short XDW_WCHAR;
+
+typedef struct tag_XDW_RECT {
+  long left;
+  long top;
+  long right;
+  long bottom;
+} XDW_RECT;
+
+typedef struct tag_XDW_GPTI_OCRTEXT_UNIT {
+	const char*	lpszText;
+	XDW_RECT	rect;
+} XDW_GPTI_OCRTEXT_UNIT;
+
+typedef struct tag_XDW_GPTI_OCRTEXT {
+	int						nUnitNum;
+	XDW_GPTI_OCRTEXT_UNIT*	pUnits;
+} XDW_GPTI_OCRTEXT;
+
+typedef struct tag_XDW_GPTI_INFO {
+	int			nSize;
+	int			nInfoType;
+	int			nPageWidth;
+	int			nPageHeight;
+	int			nRotateDegree;
+	int			nDataSize;
+	XDW_HGLOBAL	pData;
+} XDW_GPTI_INFO;
+
+typedef struct tag_XDW_DOCUMENT_INFO {
+  int nSize;
+  int nPages;
+  int nVersion;
+  int nOriginalData;
+  int nDocType;
+  int nPermission;
+  int nShowAnnotations;
+  int nDocuments;
+  int nBinderColor;
+  int nBinderSize;
+} XDW_DOCUMENT_INFO;
+
+typedef struct tag_XDW_PAGE_INFO {
+  int nSize;
+  int nWidth;
+  int nHeight;
+  int nPageType;
+  int nHorRes;
+  int nVerRes;
+  int nCompressType;
+  int nAnnotations;
+} XDW_PAGE_INFO;
+
+typedef struct tag_XDW_PAGE_INFO_EX {
+  int nSize;
+  int nWidth;
+  int nHeight;
+  int nPageType;
+  int nHorRes;
+  int nVerRes;
+  int nCompressType;
+  int nAnnotations;
+  int nDegree;
+  int nOrgWidth;
+  int nOrgHeight;
+  int nOrgHorRes;
+  int nOrgVerRes;
+  int nImageWidth;
+  int nImageHeight;
+} XDW_PAGE_INFO_EX;
+
+typedef struct tag_XDW_IMAGE_OPTION {
+  int nSize;
+  int nDpi;
+  int nColor;
+} XDW_IMAGE_OPTION;
+
+typedef struct tag_XDW_OPEN_MODE {
+	int nSize;
+	int nOption;
+} XDW_OPEN_MODE;
+
+typedef struct tag_XDW_OPEN_MODE_EX {
+	int nSize;
+	int nOption;
+	int nAuthMode;
+} XDW_OPEN_MODE_EX;
+
+typedef struct tag_XDW_CREATE_OPTION {
+	int nSize;
+	int nFitImage;
+	int nCompress;
+	int nZoom;
+	int nWidth;
+	int nHeight;
+	int nHorPos;
+	int nVerPos;
+} XDW_CREATE_OPTION;
+
+typedef struct tag_XDW_CREATE_OPTION_EX {
+	int nSize;
+	int nFitImage;
+	int nCompress;
+	int nZoom;
+	int nWidth;
+	int nHeight;
+	int nHorPos;
+	int nVerPos;
+	int nZoomDetail;
+} XDW_CREATE_OPTION_EX;
+
+typedef struct tag_XDW_CREATE_OPTION_EX2 {
+	int nSize;
+	int nFitImage;
+	int nCompress;
+	int nZoom;
+	int nWidth;
+	int nHeight;
+	int nHorPos;
+	int nVerPos;
+	int nZoomDetail;
+	int nMaxPaperSize;
+} XDW_CREATE_OPTION_EX2;
+
+
+#define XDW_SIZEOF_ORGDATANAME	256
+typedef struct tag_XDW_ORGDATA_INFO {
+	int nSize;
+	int nDataSize;
+	long nDate;
+	char szName[XDW_SIZEOF_ORGDATANAME];
+} XDW_ORGDATA_INFO;
+
+typedef struct tag_XDW_ORGDATA_INFOW {
+	int nSize;
+	int nDataSize;
+	long nDate;
+	XDW_WCHAR szName[XDW_SIZEOF_ORGDATANAME];
+} XDW_ORGDATA_INFOW;
+
+#define	XDW_SIZEOF_LINKROOTFOLDER	256
+typedef struct tag_XDW_LINKROOTFOLDER_INFO {
+	int nSize;
+	char szPath[XDW_SIZEOF_LINKROOTFOLDER];
+	char szLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER];
+} XDW_LINKROOTFOLDER_INFO ;
+
+typedef struct tag_XDW_LINKROOTFOLDER_INFOW {
+	int nSize;
+	XDW_WCHAR wszPath[XDW_SIZEOF_LINKROOTFOLDER];
+	XDW_WCHAR wszLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER];
+} XDW_LINKROOTFOLDER_INFOW ;
+
+typedef struct tag_XDW_CREATE_STATUS {
+	int nSize;
+	int phase;
+	int nTotalPage;
+	int nPage;
+} XDW_CREATE_STATUS;
+
+typedef struct tag_XDW_ANNOTATION_INFO {
+	int nSize;
+	XDW_ANNOTATION_HANDLE handle;
+	int nHorPos;
+	int nVerPos;
+	int nWidth;
+	int nHeight;
+	int nAnnotationType;
+	int nChildAnnotations;
+} XDW_ANNOTATION_INFO;
+
+
+typedef struct tag_XDW_AA_INITIAL_DATA {
+    int nSize;
+    int nAnnotationType;
+    int nReserved1;
+    int nReserved2;
+} XDW_AA_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_FUSEN_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    int nWidth;
+    int nHeight;
+} XDW_AA_FUSEN_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_STRAIGHTLINE_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    int nHorVec;
+    int nVerVec;
+} XDW_AA_STRAIGHTLINE_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_RECT_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    int nWidth;
+    int nHeight;
+} XDW_AA_RECT_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_ARC_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    int nWidth;
+    int nHeight;
+} XDW_AA_ARC_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_BITMAP_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+    char szImagePath[256];
+} XDW_AA_BITMAP_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_BITMAP_INITIAL_DATAW {
+	XDW_AA_INITIAL_DATA common;
+	XDW_WCHAR wszImagePath[256];
+} XDW_AA_BITMAP_INITIAL_DATAW;
+
+typedef struct tag_XDW_AA_STAMP_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nWidth;
+} XDW_AA_STAMP_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_RECEIVEDSTAMP_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nWidth;
+} XDW_AA_RECEIVEDSTAMP_INITIAL_DATA;
+
+#define	XDW_SIZEOF_GUID 36
+typedef struct tag_XDW_AA_CUSTOM_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nWidth;
+	int nHeight;
+	char* lpszGuid;
+	int nCustomDataSize;
+	unsigned char* pCustomData;
+} XDW_AA_CUSTOM_INITIAL_DATA;
+
+typedef struct tag_XDW_IMAGE_OPTION_EX {
+  int nSize;
+  int nDpi;
+  int nColor;
+  int nImageType;
+  void* pDetailOption;
+} XDW_IMAGE_OPTION_EX;
+
+typedef struct tag_XDW_IMAGE_OPTION_TIFF {
+  int nSize;
+  int nCompress;
+  int nEndOfMultiPages;
+} XDW_IMAGE_OPTION_TIFF;
+
+typedef struct tag_XDW_IMAGE_OPTION_JPEG {
+  int nSize;
+  int nCompress;
+} XDW_IMAGE_OPTION_JPEG;
+
+typedef struct tag_XDW_IMAGE_OPTION_PDF {
+	int nSize;
+	int nCompress;
+	int nConvertMethod;
+	int nEndOfMultiPages;
+} XDW_IMAGE_OPTION_PDF;
+
+typedef struct tag_XDW_BINDER_INITIAL_DATA {
+  int nSize;
+  int nBinderColor;
+  int nBinderSize;
+} XDW_BINDER_INITIAL_DATA;
+
+typedef struct tag_XDW_OCR_OPTION_V4 {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nJapaneseKnowledgeProcessing;
+  int nForm;
+  int nColumn;
+  int nDisplayProcess;
+  int nAutoDeskew;
+} XDW_OCR_OPTION_V4;
+
+typedef struct tag_XDW_OCR_OPTION_V5 {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nJapaneseKnowledgeProcessing;
+  int nForm;
+  int nColumn;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+} XDW_OCR_OPTION_V5;
+
+typedef struct tag_XDW_OCR_OPTION_V5_EX {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nJapaneseKnowledgeProcessing;
+  int nForm;
+  int nColumn;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+  int nPriority;
+} XDW_OCR_OPTION_V5_EX;
+
+typedef struct tag_XDW_OCR_OPTION_WRP {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nForm;
+  int nColumn;
+  int nAutoDeskew;
+  int nPriority;
+} XDW_OCR_OPTION_WRP;
+
+typedef struct tag_XDW_OCR_OPTION_FRE {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nDocumentType;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+  int nPriority;
+} XDW_OCR_OPTION_FRE;
+
+typedef struct tag_XDW_OCR_OPTION_V7 {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nInsertSpaceCharacter;
+  int nJapaneseKnowledgeProcessing;
+  int nForm;
+  int nColumn;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+  int nPriority;
+  int nEngineLevel;
+  int nLanguageMixedRate;
+  int nHalfSizeChar;
+} XDW_OCR_OPTION_V7;
+
+typedef struct tag_XDW_OCR_OPTION_FRE_V7 {
+  int nSize;
+  int nNoiseReduction;
+  int nLanguage;
+  int nDocumentType;
+  int nDisplayProcess;
+  int nAutoDeskew;
+  unsigned int nAreaNum;
+  XDW_RECT** pAreaRects;
+  int nPriority;
+  int nEngineLevel;
+} XDW_OCR_OPTION_FRE_V7;
+
+typedef struct tag_XDW_PAGE_COLOR_INFO {
+  int nSize;
+  int nColor;
+  int nImageDepth;
+} XDW_PAGE_COLOR_INFO;
+
+#define XDW_SIZEOF_PSWD	256
+typedef struct tag_XDW_SECURITY_OPTION_PSWD {
+  int nSize;
+  int nPermission;
+  char szOpenPswd[XDW_SIZEOF_PSWD];
+  char szFullAccessPswd[XDW_SIZEOF_PSWD];
+  char* lpszComment;
+} XDW_SECURITY_OPTION_PSWD;
+
+typedef struct tag_XDW_DER_CERTIFICATE {
+  void *pCert;
+  int nCertSize;
+} XDW_DER_CERTIFICATE;
+
+typedef struct tag_XDW_SECURITY_OPTION_PKI {
+  int nSize;
+  int nPermission;
+  XDW_DER_CERTIFICATE* lpxdcCerts;
+  int nCertsNum;
+  int nFullAccessCertsNum;
+  int nErrorStatus;
+  int nFirstErrorCert;
+} XDW_SECURITY_OPTION_PKI;
+
+typedef struct tag_XDW_PROTECT_OPTION {
+  int nSize;
+  int nAuthMode;
+} XDW_PROTECT_OPTION;
+
+typedef struct tag_XDW_RELEASE_PROTECTION_OPTION {
+  int nSize;
+  int nAuthMode;
+} XDW_RELEASE_PROTECTION_OPTION;
+
+typedef struct tag_XDW_PROTECTION_INFO {
+  int nSize;
+  int nProtectType;
+  int nPermission;
+} XDW_PROTECTION_INFO;
+
+typedef struct tag_XDW_SIGNATURE_OPTION_V5 {
+	int nSize;
+	int nPage;
+	int nHorPos;
+	int nVerPos;
+	int nSignatureType;
+} XDW_SIGNATURE_OPTION_V5;
+
+typedef struct tag_XDW_SIGNATURE_INFO_V5 {
+	int nSize;
+	int nSignatureType;
+	int nPage;
+	int nHorPos;
+	int nVerPos;
+	int nWidth;
+	int nHeight;
+	long nSignedTime;
+} XDW_SIGNATURE_INFO_V5;
+
+typedef struct tag_XDW_SIGNATURE_MODULE_STATUS {
+	int nSize;
+	int nSignatureType;
+	int nErrorStatus;
+} XDW_SIGNATURE_MODULE_STATUS;
+
+typedef struct tag_XDW_SIGNATURE_MODULE_OPTION_PKI {
+	int nSize;
+	void *pSignerCert;
+	int nSignerCertSize;
+} XDW_SIGNATURE_MODULE_OPTION_PKI;
+
+#define	XDW_SIZEOF_STAMPNAME	256
+#define	XDW_SIZEOF_STAMPOWNERNAME	64
+#define	XDW_SIZEOF_STAMPREMARKS	1024
+typedef struct tag_XDW_SIGNATURE_STAMP_INFO_V5 {
+	int nSize;
+	char lpszStampName[XDW_SIZEOF_STAMPNAME];
+	char lpszOwnerName[XDW_SIZEOF_STAMPOWNERNAME];
+	long nValidDate;
+	char lpszRemarks[XDW_SIZEOF_STAMPREMARKS];
+	int nDocVerificationStatus;
+	int nStampVerificationStatus;
+} XDW_SIGNATURE_STAMP_INFO_V5;
+
+#define XDW_SIZEOF_PKIMODULENAME	16
+#define XDW_SIZEOF_PKISUBJECTDN	512
+#define XDW_SIZEOF_PKISUBJECT	256
+#define XDW_SIZEOF_PKIISSUERDN	512
+#define XDW_SIZEOF_PKIISSUER	256
+#define XDW_SIZEOF_PKINOTBEFORE	32
+#define XDW_SIZEOF_PKINOTAFTER	32
+#define XDW_SIZEOF_PKISERIAL	64
+#define XDW_SIZEOF_PKIREMARKS	64
+#define XDW_SIZEOF_PKISIGNEDTIME	32
+
+typedef struct tag_XDW_SIGNATURE_PKI_INFO_V5 {
+	int nSize;
+	char lpszModule[XDW_SIZEOF_PKIMODULENAME];
+	char lpszSubjectDN[XDW_SIZEOF_PKISUBJECTDN];
+	char lpszSubject[XDW_SIZEOF_PKISUBJECT];
+	char lpszIssuerDN[XDW_SIZEOF_PKIISSUERDN];
+	char lpszIssuer[XDW_SIZEOF_PKIISSUER];
+	char lpszNotBefore[XDW_SIZEOF_PKINOTBEFORE];
+	char lpszNotAfter[XDW_SIZEOF_PKINOTAFTER];
+	char lpszSerial[XDW_SIZEOF_PKISERIAL];
+	void* pSignerCert;
+	int nSignerCertSize;
+	char lpszRemarks[XDW_SIZEOF_PKIREMARKS];
+	char lpszSigningTime[XDW_SIZEOF_PKISIGNEDTIME];
+	int nDocVerificationStatus;
+	int nCertVerificationType;
+	int nCertVerificationStatus;
+} XDW_SIGNATURE_PKI_INFO_V5;
+
+typedef struct tag_XDW_OCR_TEXTINFO {
+	int nSize;
+	int nWidth;
+	int nHeight;
+	long charset;
+	char* lpszText;
+	int nLineRect;
+	XDW_RECT* pLineRect;
+} XDW_OCR_TEXTINFO;
+
+typedef struct tag_XDW_OCRIMAGE_OPTION { 
+	int nSize;
+	int nDpi;
+	int nNoiseReduction;
+	int nPriority;
+} XDW_OCRIMAGE_OPTION;
+
+typedef struct tag_XDW_FIND_TEXT_OPTION { 
+	int nSize;
+	int nIgnoreMode;
+	int nReserved;
+	int nReserved2;
+} XDW_FIND_TEXT_OPTION;
+
+#define XDW_FOUND_RECT_STATUS_HIT (0)
+#define XDW_FOUND_RECT_STATUS_PAGE (1)
+
+typedef struct tag_XDW_POINT {
+	int x;
+	int y;
+} XDW_POINT;
+
+
+typedef struct tag_XDW_AA_MARKER_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nCounts;
+    XDW_POINT* pPoints;
+} XDW_AA_MARKER_INITIAL_DATA;
+
+typedef struct tag_XDW_AA_POLYGON_INITIAL_DATA {
+    XDW_AA_INITIAL_DATA common;
+	int nCounts;
+    XDW_POINT* pPoints;
+} XDW_AA_POLYGON_INITIAL_DATA;
+
+typedef struct XDW_BEGIN_CREATE_OPTION {
+	int nSize; 
+	BOOL bNoUseSpecifiedApp;
+} XDW_BEGIN_CREATE_OPTION;
+
+#ifdef _WIN64
+#ifndef XDW_DISABLE_PRAGMA_PACK
+#pragma pack(pop, xdwapi_enter_parser)
+#endif	/* XDW_DISABLE_PRAGMA_PACK */
+#endif	/* _WIN64 */
+
+#endif //XDWAPI_DECLARATIONS
+
+
+int XDWAPI XDW_GetInformation(int nIndex, char* lpszOutput, int nSize, void* reserved);
+int XDWAPI XDW_GetInformationW(int nIndex, XDW_WCHAR* lpwszOutput, int nSize, void* reserved);
+int XDWAPI XDW_AddSystemFolder(int nIndex, void* reserved );
+
+int XDWAPI XDW_MergeXdwFiles(const char** lpszInputPaths, int nFiles, const char* lpszOutputPath, void* reserved );
+int XDWAPI XDW_MergeXdwFilesW(const XDW_WCHAR** lpwszInputPaths, int nFiles, const XDW_WCHAR* lpwszOutputPath, void* reserved );
+int XDWAPI XDW_OpenDocumentHandle(const char* lpszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode);
+int XDWAPI XDW_OpenDocumentHandleW(const XDW_WCHAR* lpwszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode);
+int XDWAPI XDW_CloseDocumentHandle(XDW_DOCUMENT_HANDLE handle, void* reserved );
+int XDWAPI XDW_GetDocumentInformation(XDW_DOCUMENT_HANDLE handle, XDW_DOCUMENT_INFO* pDocumentInfo);
+int XDWAPI XDW_GetPageInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_INFO* pPageInfo);
+int XDWAPI XDW_GetPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_GetPageText(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved );
+int XDWAPI XDW_ConvertPageToImageFile(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, XDW_IMAGE_OPTION* pImageOption);
+int XDWAPI XDW_ConvertPageToImageFileW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, XDW_IMAGE_OPTION* pImageOption);
+int XDWAPI XDW_GetPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetPageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_DeletePage(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved);
+int XDWAPI XDW_RotatePage(XDW_DOCUMENT_HANDLE handle, int nPage, int nDegree, void* reserved);
+int XDWAPI XDW_SaveDocument(XDW_DOCUMENT_HANDLE handle, void* reserved);
+int XDWAPI XDW_CreateXdwFromImageFile(const char* lpszInputPath, const char* lpszOutputPath, XDW_CREATE_OPTION* pOption);
+int XDWAPI XDW_CreateXdwFromImageFileW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, XDW_CREATE_OPTION* pOption);
+
+int XDWAPI XDW_GetOriginalDataInformation(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFO* pOriginalDataInfo, void* reserved);
+int XDWAPI XDW_GetOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetOriginalDataW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_InsertOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszInputPath, void* reserved);
+int XDWAPI XDW_DeleteOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, void* reserved);
+
+int XDWAPI XDW_BeginCreationFromAppFile(const char* lpszInputPath, const char* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption);
+int XDWAPI XDW_BeginCreationFromAppFileW(const XDW_WCHAR* lpszInputPath, const XDW_WCHAR* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption);
+int XDWAPI XDW_EndCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved);
+int XDWAPI XDW_GetStatusCreationFromAppFile(XDW_CREATE_HANDLE handle, XDW_CREATE_STATUS* pStatus);
+int XDWAPI XDW_CancelCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved);
+
+int XDWAPI XDW_GetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+int XDWAPI XDW_SetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+
+int XDWAPI XDW_GetAnnotationInformation(XDW_DOCUMENT_HANDLE hDocument, int nPage, XDW_ANNOTATION_HANDLE hAnnotation,int nIndex, XDW_ANNOTATION_INFO* pAnnotationInfo, void* reserved);
+int XDWAPI XDW_GetAnnotationAttribute(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, char* pAttribute, int nDataSize, void* reserved);
+
+int XDWAPI XDW_AddAnnotation(XDW_DOCUMENT_HANDLE handle, int hAnnotationType, int nPage, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation,  void* reserved);
+int XDWAPI XDW_RemoveAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hRemoveAnnotation, void* reserved);
+int XDWAPI XDW_SetAnnotationAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved);
+int XDWAPI XDW_SetAnnotationSize(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nWidth, int nHeight, void* reserved);
+int XDWAPI XDW_SetAnnotationPosition(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, void* reserved);
+int XDWAPI XDW_CreateSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_CreateSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_ExtractFromSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_ExtractFromSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+
+int XDWAPI XDW_ConvertPageToImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, XDW_IMAGE_OPTION* pImageOption);
+int XDWAPI XDW_GetThumbnailImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, void* reserved);
+
+int XDWAPI XDW_GetPageTextToMemory(XDW_DOCUMENT_HANDLE handle, int nPage, char* lpszValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetFullText(XDW_DOCUMENT_HANDLE handle, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+int XDWAPI XDW_SetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+
+int XDWAPI XDW_ReducePageNoise(XDW_DOCUMENT_HANDLE handle, int nPage, int nLevel, void* reserved);
+int XDWAPI XDW_ShowOrHideAnnotations(XDW_DOCUMENT_HANDLE handle, int nShowAnnotations, void* reserved);
+int XDWAPI XDW_GetCompressedPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetCompressedPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_InsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, void* reserved);
+int XDWAPI XDW_InsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, void* reserved);
+int XDWAPI XDW_ApplyOcr(XDW_DOCUMENT_HANDLE handle, int nPage, int nOcrEngine, void* pOption, void* reserved);
+int XDWAPI XDW_RotatePageAuto(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved);
+int XDWAPI XDW_CreateBinder(const char* lpszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved);
+int XDWAPI XDW_CreateBinderW(const XDW_WCHAR* lpwszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved);
+int XDWAPI XDW_InsertDocumentToBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszInputPath, void* reserved);
+
+int XDWAPI XDW_GetDocumentFromBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_GetDocumentFromBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_DeleteDocumentInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved);
+int XDWAPI XDW_GetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, int nDocNameSize, void* reserved);
+int XDWAPI XDW_SetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, void* reserved);
+int XDWAPI XDW_GetDocumentInformationInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_DOCUMENT_INFO* pDocumentInfo, void* reserved);
+int XDWAPI XDW_Finalize(void* reserved);
+int XDWAPI XDW_GetPageColorInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_COLOR_INFO* pColorInfo, void* reserved);
+int XDWAPI XDW_OptimizeDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
+int XDWAPI XDW_OptimizeDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved);
+int XDWAPI XDW_ProtectDocument(const char* lpszInputPath, const char* lpszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption);
+int XDWAPI XDW_ProtectDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption);
+
+int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, XDW_CREATE_OPTION* pOption, void* reserved);
+int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, XDW_CREATE_OPTION* pOption, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeNumber(XDW_DOCUMENT_HANDLE handle, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByName(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByOrder(XDW_DOCUMENT_HANDLE handle, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_SetDocumentAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved);
+int XDWAPI XDW_SucceedAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszFilePath, int nDocument, int nSuccession, void* reserved);
+int XDWAPI XDW_SucceedAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszFilePath, int nDocument, int nSuccession, void* reserved);
+int XDWAPI XDW_GetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_SetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved);
+int XDWAPI XDW_UpdatePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved);
+int XDWAPI XDW_RemovePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved);
+int XDWAPI XDW_GetLinkRootFolderInformation(int nOrder, XDW_LINKROOTFOLDER_INFO* pLinkRootFolderInfo, void* reserved);
+int XDWAPI XDW_GetLinkRootFolderInformationW(int nOrder, XDW_LINKROOTFOLDER_INFOW* pLinkRootFolderInfo, void* reserved);
+int XDWAPI XDW_GetLinkRootFolderNumber(void* reserved);
+int XDWAPI XDW_GetLinkRootFolderNumberW(void* reserved);
+int XDWAPI XDW_GetPageTextInformation(XDW_DOCUMENT_HANDLE handle, int nPage, void* pInfo, void* reserved);
+int XDWAPI XDW_GetDocumentSignatureNumber(XDW_DOCUMENT_HANDLE handle, void* reserved);
+int XDWAPI XDW_AddAnnotationOnParentAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int hAnnotationType, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
+int XDWAPI XDW_SignDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus);
+int XDWAPI XDW_SignDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus);
+int XDWAPI XDW_GetSignatureInformation(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pInfo, void* pModuleInfo, void* pReserved, void* pModuleStatus);
+int XDWAPI XDW_UpdateSignatureStatus(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pModuleOption, void* pReserved, void* pModuleStatus);
+
+int XDWAPI XDW_GetOcrImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* pImageOption, void* reserved);
+int XDWAPI XDW_GetOcrImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* pImageOption, void* reserved);
+int XDWAPI XDW_SetOcrData(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_OCR_TEXTINFO* pData, void* reserved);
+
+int XDWAPI XDW_GetDocumentAttributeNumberInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByOrderInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+
+int XDWAPI XDW_GetTMInfo(XDW_DOCUMENT_HANDLE handle, void* pTMInfo, int nTMInfoSize, void* reserved);
+int XDWAPI XDW_SetTMInfo(XDW_DOCUMENT_HANDLE handle, const void* pTMInfo, int nTMInfoSize, void* reserved);
+
+int XDWAPI XDW_CreateXdwFromImagePdfFile(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
+
+int XDWAPI XDW_FindTextInPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszText, XDW_FIND_TEXT_OPTION* pOption, XDW_FOUND_HANDLE* pFoundHandle, void* reserved);
+int XDWAPI XDW_FindNext(XDW_FOUND_HANDLE* pFoundHandle, void* reserved);
+int XDWAPI XDW_GetNumberOfRectsInFoundObject(XDW_FOUND_HANDLE foundHandle, void* reserved);
+int XDWAPI XDW_GetRectInFoundObject(XDW_FOUND_HANDLE foundHandle, int nRect, XDW_RECT* pRect, int* pnStatus, void* reserved);
+int XDWAPI XDW_CloseFoundHandle(XDW_FOUND_HANDLE foundHandle);
+
+int XDWAPI XDW_GetAnnotationUserAttribute(XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+int XDWAPI XDW_SetAnnotationUserAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
+
+int XDWAPI XDW_StarchAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nStarch, void* reserved);
+
+int XDWAPI XDW_ReleaseProtectionOfDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption);
+int XDWAPI XDW_ReleaseProtectionOfDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption);
+int XDWAPI XDW_GetProtectionInformation(const char* lpszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved);
+int XDWAPI XDW_GetProtectionInformationW(const XDW_WCHAR* lpwszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved);
+
+int XDWAPI XDW_GetAnnotationCustomAttributeByName(XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetAnnotationCustomAttributeByOrder(XDW_ANNOTATION_HANDLE hAnnotation, int nOrder, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
+int XDWAPI XDW_GetAnnotationCustomAttributeNumber(XDW_ANNOTATION_HANDLE hAnnotation, void* reserved);
+int XDWAPI XDW_SetAnnotationCustomAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved);
+
+int XDWAPI XDW_GetPageTextToMemoryW(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_WCHAR* pValue, int nBufferLength, void* reserved);
+int XDWAPI XDW_GetFullTextW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pOutputPath, void* reserved);
+int XDWAPI XDW_GetAnnotationAttributeW(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_SetAnnotationAttributeW(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, int nReserved, void* pReserved);
+int XDWAPI XDW_GetDocumentAttributeByNameW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByOrderW(XDW_DOCUMENT_HANDLE handle, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetDocumentAttributeByOrderInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_SetDocumentAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_WCHAR* pDocName, int nBufferLength, int* pnTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_SetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pDocName, int nTextType, unsigned int codepage, void* reserved);
+int XDWAPI XDW_GetOriginalDataInformationW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFOW* pOriginalDataInfoW, int* pnTextType, unsigned int codepage, void* reserved);
+
+int XDWAPI XDW_AddAnnotationFromAnnFile(XDW_DOCUMENT_HANDLE handle, const char* lpszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
+int XDWAPI XDW_AddAnnotationFromAnnFileW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
+int XDWAPI XDW_GroupAnnotations(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int* pnAnntationIndexes, int nAnnotationNum, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
+int XDWAPI XDW_UnGroupAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, void* reserved);
+
+/* error code */
+#ifndef XDWAPI_E_DECLARATIONS
+#define XDWAPI_E_DECLARATIONS
+
+#define XDW_E_NOT_INSTALLED				((int)0x80040001)
+#define XDW_E_INFO_NOT_FOUND			((int)0x80040002)
+#define XDW_E_INSUFFICIENT_BUFFER		((int)0x8007007A)
+#define XDW_E_FILE_NOT_FOUND			((int)0x80070002)
+#define XDW_E_FILE_EXISTS				((int)0x80070050)
+#define XDW_E_ACCESSDENIED				((int)0x80070005)
+#define XDW_E_BAD_FORMAT				((int)0x8007000B)
+#define XDW_E_OUTOFMEMORY				((int)0x8007000E)
+#define XDW_E_WRITE_FAULT				((int)0x8007001D)
+#define XDW_E_SHARING_VIOLATION			((int)0x80070020)
+#define XDW_E_DISK_FULL					((int)0x80070027)
+#define XDW_E_INVALIDARG				((int)0x80070057)
+#define XDW_E_INVALID_NAME				((int)0x8007007B)
+#define XDW_E_INVALID_ACCESS			((int)0x80040003)
+#define XDW_E_INVALID_OPERATION			((int)0x80040004)
+#define XDW_E_NEWFORMAT					((int)0x800E0004)
+#define XDW_E_BAD_NETPATH				((int)0x800E0005)
+#define XDW_E_APPLICATION_FAILED		((int)0x80001156)
+#define XDW_E_SIGNATURE_MODULE			((int)0x800E0010)
+#define XDW_E_PROTECT_MODULE			((int)0x800E0012)
+#define XDW_E_UNEXPECTED				((int)0x8000FFFF)
+#define XDW_E_CANCELED					((int)0x80040005)
+#define XDW_E_ANNOTATION_NOT_ACCEPTED	((int)0x80040006)
+
+#endif //XDWAPI_E_DECLARATIONS
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif /* __cplusplus */
+
+#endif /* XDW_API_H */
+
Binary file src/kaigo/Perori/xdwapi.lib has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Perori/xdwapian.h	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,133 @@
+/* File: xdwapian.h
+// Copyright(C) 1999-2002 by Fuji Xerox Co., Ltd. All right reserved.  
+*/
+
+#ifndef __XDWAPIAN_H__
+#define __XDWAPIAN_H__ 1
+
+#define	XDW_ATN_Text				"%Text"
+#define	XDW_ATN_FontName			"%FontName"
+#define	XDW_ATN_FontStyle			"%FontStyle"
+#define	XDW_ATN_FontSize			"%FontSize"
+#define	XDW_ATN_ForeColor			"%ForeColor"
+#define	XDW_ATN_FontPitchAndFamily	"%FontPitchAndFamily"
+#define	XDW_ATN_FontCharSet			"%FontCharSet"
+#define	XDW_ATN_BackColor			"%BackColor"
+#define	XDW_ATN_Caption				"%Caption"
+#define	XDW_ATN_Url					"%Url"
+#define	XDW_ATN_XdwPath				"%XdwPath"
+#define	XDW_ATN_ShowIcon			"%ShowIcon"
+#define	XDW_ATN_LinkType			"%LinkType"
+#define	XDW_ATN_XdwPage				"%XdwPage"
+#define	XDW_ATN_Tooltip				"%Tooltip"
+#define	XDW_ATN_Tooltip_String		"%TooltipString"
+#define	XDW_ATN_XdwPath_Relative	"%XdwPathRelative"
+#define	XDW_ATN_XdwLink				"%XdwLink"
+#define	XDW_ATN_LinkAtn_Title		"%LinkAtnTitle"
+#define	XDW_ATN_OtherFilePath		"%OtherFilePath"
+#define	XDW_ATN_OtherFilePath_Relative	"%OtherFilePathRelative"
+#define	XDW_ATN_MailAddress			"%MailAddress"
+#define	XDW_ATN_BorderStyle			"%BorderStyle"
+#define	XDW_ATN_BorderWidth			"%BorderWidth"
+#define	XDW_ATN_BorderColor			"%BorderColor"
+#define	XDW_ATN_BorderTransparent	"%BorderTransparent"
+#define XDW_ATN_BorderType			"%BorderType"
+#define	XDW_ATN_FillStyle			"%FillStyle"
+#define	XDW_ATN_FillColor			"%FillColor"
+#define	XDW_ATN_FillTransparent		"%FillTransparent"
+#define	XDW_ATN_ArrowheadType		"%ArrowheadType"
+#define	XDW_ATN_ArrowheadStyle		"%ArrowheadStyle"
+#define	XDW_ATN_WordWrap			"%WordWrap"
+#define	XDW_ATN_TextDirection		"%TextDirection"
+#define XDW_ATN_TextOrientation		"%TextOrientation"
+#define	XDW_ATN_LineSpace			"%LineSpace"
+#define	XDW_ATN_AutoResize			"%AutoResize"
+#define	XDW_ATN_Invisible			"%Invisible"
+#define	XDW_ATN_PageFrom			"%PageFrom"
+#define	XDW_ATN_XdwNameInXbd		"%XdwNameInXbd"
+#define	XDW_ATN_TopField			"%TopField"
+#define	XDW_ATN_BottomField			"%BottomField"
+#define	XDW_ATN_DateStyle			"%DateStyle"
+#define	XDW_ATN_YearField			"%YearField"
+#define	XDW_ATN_MonthField			"%MonthField"
+#define	XDW_ATN_DayField			"%DayField"
+#define	XDW_ATN_BasisYearStyle		"%BasisYearStyle"
+#define	XDW_ATN_BasisYear			"%BasisYear"
+#define	XDW_ATN_DateField_FirstChar	"%DateFieldFirstChar"
+#define	XDW_ATN_Alignment			"%Alignment"
+#define	XDW_ATN_LeftRightMargin		"%LeftRightMargin"
+#define	XDW_ATN_TopBottomMargin		"%TopBottomMargin"
+#define	XDW_ATN_VerPosition			"%VerPosition"
+#define	XDW_ATN_StartingNumber		"%StartingNumber"
+#define	XDW_ATN_Digit				"%Digit"
+#define	XDW_ATN_PageRange			"%PageRange"
+#define	XDW_ATN_BeginningPage		"%BeginningPage"
+#define	XDW_ATN_EndingPage			"%EndingPage"
+#define	XDW_ATN_Zoom				"%Zoom"
+#define	XDW_ATN_ImageFile			"%ImageFile"
+#define XDW_ATN_Points				"%Points"
+#define XDW_ATN_DateFormat			"%DateFormat"
+#define XDW_ATN_DateOrder			"%DateOrder"
+#define XDW_ATN_TextSpacing			"%Spacing"
+#define XDW_ATN_TextTopMargin		"%TopMargin"
+#define XDW_ATN_TextLeftMargin		"%LeftMargin"
+#define XDW_ATN_TextBottomMargin	"%BottomMargin"
+#define XDW_ATN_TextRightMargin		"%RightMargin"
+#define XDW_ATN_TextAutoResizeHeight	"%AutoResizeHeight"
+#define XDW_ATN_GUID				"%CustomAnnGuid"
+#define XDW_ATN_CustomData			"%CustomAnnCustomData"
+
+#define	XDW_PROP_TITLE				"%Title"
+#define	XDW_PROP_SUBJECT			"%Subject"
+#define	XDW_PROP_AUTHOR				"%Author"
+#define	XDW_PROP_KEYWORDS			"%Keywords"
+#define	XDW_PROP_COMMENTS			"%Comments"
+
+#define	XDW_PROPW_TITLE				L"%Title"
+#define	XDW_PROPW_SUBJECT			L"%Subject"
+#define	XDW_PROPW_AUTHOR			L"%Author"
+#define	XDW_PROPW_KEYWORDS			L"%Keywords"
+#define	XDW_PROPW_COMMENTS			L"%Comments"
+
+#define	XDW_COLOR_NONE			0x010101
+#define	XDW_COLOR_BLACK			0x000000
+#define	XDW_COLOR_MAROON		0x000080
+#define	XDW_COLOR_GREEN			0x008000
+#define	XDW_COLOR_OLIVE			0x008080
+#define	XDW_COLOR_NAVY			0x800000
+#define	XDW_COLOR_PURPLE		0x800080
+#define	XDW_COLOR_TEAL			0x808000
+#define	XDW_COLOR_GRAY			0x808080
+#define	XDW_COLOR_SILVER		0xC0C0C0
+#define	XDW_COLOR_RED			0x0000FF
+#define	XDW_COLOR_LIME			0x00FF00
+#define	XDW_COLOR_YELLOW		0x00FFFF
+#define	XDW_COLOR_BLUE			0xFF0000
+#define	XDW_COLOR_FUCHIA		0xFF00FF
+#define	XDW_COLOR_AQUA			0xFFFF00
+#define	XDW_COLOR_WHITE			0xFFFFFF
+#define	XDW_COLOR_FUSEN_RED		0xFFC2FF
+#define	XDW_COLOR_FUSEN_BLUE	0xFFBF9D
+#define	XDW_COLOR_FUSEN_YELLOW	0x64FFFF
+#define XDW_COLOR_FUSEN_LIME	0xC2FF9D
+#define XDW_COLOR_FUSEN_PALE_RED	0xE1D7FF
+#define XDW_COLOR_FUSEN_PALE_BLUE	0xFAE1C8
+#define XDW_COLOR_FUSEN_PALE_YELLOW	0xC3FAFF
+#define XDW_COLOR_FUSEN_PALE_LIME	0xD2FACD
+
+#define	XDW_FS_ITALIC_FLAG		1
+#define	XDW_FS_BOLD_FLAG		2
+#define	XDW_FS_UNDERLINE_FLAG	4
+#define	XDW_FS_STRIKEOUT_FLAG	8
+
+#define	XDW_LT_LINK_TO_ME			0
+#define	XDW_LT_LINK_TO_XDW			1
+#define	XDW_LT_LINK_TO_URL			2
+#define	XDW_LT_LINK_TO_OTHERFILE	3
+#define XDW_LT_LINK_TO_MAILADDR		4
+
+#define	XDW_PF_XDW			0
+#define	XDW_PF_XBD			1
+#define	XDW_PF_XDW_IN_XBD	2
+
+#endif //__XDWAPIAN_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/Makefile	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,99 @@
+# Makefile for wxWidgets Application
+# Last Change: 2020-02-12 … 15:59:48.
+# by Takayuki Mutoh
+#
+
+PROGNAME = porori
+
+### Variables ###
+ARCH = 64
+#ARCH = 32
+LOCAL = C:/msys64/home/muto/local$(ARCH)
+OBJDIR = ./obj$(ARCH)
+CXX = g++
+vpath %.cpp ./src
+vpath %.h   ./include
+vpath %.rc  ./image
+
+# For Microsoft Windows
+ifdef COMSPEC
+WXCXXFLAGS = -I./image -I$(LOCAL)/lib/wx/include/msw-unicode-static-3.1 -I$(LOCAL)/include/wx-3.1 -D_LARGEFILE_SOURCE=unknown -D__WXMSW__ -mthreads
+WXLIBS = -L$(LOCAL)/lib -Wl,--subsystem,windows -mwindows -lwx_mswu_xrc-3.1 -lwx_mswu_qa-3.1 -lwx_baseu_net-3.1 -lwx_mswu_html-3.1 -lwx_mswu_adv-3.1 -lwx_mswu_core-3.1 -lwx_baseu_xml-3.1 -lwx_baseu-3.1 -lwxtiff-3.1 -lwxjpeg-3.1 -lwxpng-3.1 -lwxregexu-3.1 -lwxscintilla-3.1 -lwxexpat-3.1 -lwxzlib-3.1 -lrpcrt4 -loleaut32 -lole32 -luuid -luxtheme -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lcomdlg32 -ladvapi32 -lversion -lwsock32 -lgdi32 -loleacc 
+LIBS = $(WXLIBS) -static
+
+EXECUTABLE = $(PROGNAME).exe
+
+# For Apple OSX
+else 
+WXCXXFLAGS = -I/opt/local/lib/wx/include/osx_cocoa-unicode-2.9 -I/opt/local/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ 
+WXLIBS = -L/opt/local/lib -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -framework QuickTime -lwx_osx_cocoau_richtext-2.9 -lwx_osx_cocoau_xrc-2.9 -lwx_osx_cocoau_webview-2.9 -lwx_osx_cocoau_html-2.9 -lwx_osx_cocoau_qa-2.9 -lwx_osx_cocoau_adv-2.9 -lwx_osx_cocoau_core-2.9 -lwx_baseu_xml-2.9 -lwx_baseu_net-2.9 -lwx_baseu-2.9 
+
+EXECUTABLE = $(PROGNAME).app/Contents/Pkginfo
+
+endif
+
+CXXFLAGS = $(WXCXXFLAGS) -I./include -I./image
+#LIBS = $(WXLIBS) -static-libgcc -static-libstdc++
+
+
+OBJ = $(OBJDIR)/main.o \
+	  $(OBJDIR)/porori.o
+
+ifdef COMSPEC
+OBJMSW = $(OBJ) $(OBJDIR)/sample_rc.o
+endif
+
+
+### Targets ###
+
+all: $(EXECUTABLE)
+
+
+$(PROGNAME): $(OBJMSW)
+	$(CXX) $^ -o $@ $(LIBS)
+
+
+$(OBJDIR)/main.o: main.cpp main.h porori.h
+	-mkdir -p $(OBJDIR)
+	$(CXX) -c $< -o $@ $(CXXFLAGS)
+
+$(OBJDIR)/porori.o: porori.cpp porori.h
+	$(CXX) -c $< -o $@ $(CXXFLAGS)
+
+
+# for icon
+ifdef COMSPEC
+$(OBJDIR)/sample_rc.o: sample.rc
+	#windres -i sample.rc -o $@ -I$(LOCAL)/include/wx-3.1
+	windres -i $< -o $@ -I$(LOCAL)/include/wx-3.1
+endif
+
+$(EXECUTABLE): $(PROGNAME)
+ifdef COMSPEC
+	strip --strip-all $(EXECUTABLE)
+	./$(PROGNAME).exe
+else
+	-mkdir -p $(PROGNAME).app/Contents
+	-mkdir -p $(PROGNAME).app/Contents/MacOS
+	-mkdir -p $(PROGNAME).app/Contents/Resources
+	
+	sed -e "s/IDENTIFIER/$(PROGNAME)/" \
+	-e "s/EXECUTABLE/$(PROGNAME)/" \
+	-e "s/VERSION/0.0/" \
+	Info.plist.in > $(PROGNAME).app/Contents/Info.plist
+	
+	echo -n "APPL????" > $(EXECUTABLE)
+	
+	ln -f $(PROGNAME) $(PROGNAME).app/Contents/MacOS/$(PROGNAME)
+	cp -f wxmac.icns $(PROGNAME).app/Contents/Resources/wxmac.icns
+
+	open $(PROGNAME).app
+endif
+
+clean:
+	rm -f $(PROGNAME) $(PROGNAME).exe
+	rm -f $(OBJDIR)/*.o
+	rm -rf $(PROGNAME).app
+
+.PHONY:	all clean
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/Nintei.fbp	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<wxFormBuilder_Project>
+    <FileVersion major="1" minor="15" />
+    <object class="Project" expanded="1">
+        <property name="class_decoration">; </property>
+        <property name="code_generation">C++</property>
+        <property name="disconnect_events">1</property>
+        <property name="disconnect_mode">source_name</property>
+        <property name="disconnect_php_events">0</property>
+        <property name="disconnect_python_events">0</property>
+        <property name="embedded_files_path">res</property>
+        <property name="encoding">UTF-8</property>
+        <property name="event_generation">connect</property>
+        <property name="file"></property>
+        <property name="first_id">1000</property>
+        <property name="help_provider">none</property>
+        <property name="indent_with_spaces"></property>
+        <property name="internationalize">0</property>
+        <property name="name">ProjectNintei</property>
+        <property name="namespace"></property>
+        <property name="path">.</property>
+        <property name="precompiled_header"></property>
+        <property name="relative_path">1</property>
+        <property name="skip_lua_events">1</property>
+        <property name="skip_php_events">1</property>
+        <property name="skip_python_events">1</property>
+        <property name="ui_table">UI</property>
+        <property name="use_enum">1</property>
+        <property name="use_microsoft_bom">0</property>
+        <object class="Frame" expanded="1">
+            <property name="aui_managed">0</property>
+            <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
+            <property name="bg"></property>
+            <property name="center">wxBOTH</property>
+            <property name="context_help"></property>
+            <property name="context_menu">1</property>
+            <property name="enabled">1</property>
+            <property name="event_handler">impl_virtual</property>
+            <property name="extra_style"></property>
+            <property name="fg"></property>
+            <property name="font"></property>
+            <property name="hidden">0</property>
+            <property name="id">wxID_ANY</property>
+            <property name="maximum_size"></property>
+            <property name="minimum_size"></property>
+            <property name="name">PororiFrame</property>
+            <property name="pos"></property>
+            <property name="size">340,80</property>
+            <property name="style">wxDEFAULT_FRAME_STYLE</property>
+            <property name="subclass">; ; forward_declare</property>
+            <property name="title">Porori</property>
+            <property name="tooltip"></property>
+            <property name="window_extra_style"></property>
+            <property name="window_name"></property>
+            <property name="window_style">wxTAB_TRAVERSAL</property>
+            <property name="xrc_skip_sizer">1</property>
+            <object class="wxBoxSizer" expanded="1">
+                <property name="minimum_size"></property>
+                <property name="name">bSizerTop</property>
+                <property name="orient">wxHORIZONTAL</property>
+                <property name="permission">none</property>
+                <object class="sizeritem" expanded="1">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxDatePickerCtrl" expanded="1">
+                        <property name="BottomDockable">1</property>
+                        <property name="LeftDockable">1</property>
+                        <property name="RightDockable">1</property>
+                        <property name="TopDockable">1</property>
+                        <property name="aui_layer"></property>
+                        <property name="aui_name"></property>
+                        <property name="aui_position"></property>
+                        <property name="aui_row"></property>
+                        <property name="best_size"></property>
+                        <property name="bg"></property>
+                        <property name="caption"></property>
+                        <property name="caption_visible">1</property>
+                        <property name="center_pane">0</property>
+                        <property name="close_button">1</property>
+                        <property name="context_help"></property>
+                        <property name="context_menu">1</property>
+                        <property name="default_pane">0</property>
+                        <property name="dock">Dock</property>
+                        <property name="dock_fixed">0</property>
+                        <property name="docking">Left</property>
+                        <property name="enabled">1</property>
+                        <property name="fg"></property>
+                        <property name="floatable">1</property>
+                        <property name="font"></property>
+                        <property name="gripper">0</property>
+                        <property name="hidden">0</property>
+                        <property name="id">wxID_ANY</property>
+                        <property name="max_size"></property>
+                        <property name="maximize_button">0</property>
+                        <property name="maximum_size"></property>
+                        <property name="min_size"></property>
+                        <property name="minimize_button">0</property>
+                        <property name="minimum_size"></property>
+                        <property name="moveable">1</property>
+                        <property name="name">m_datePickerFrom</property>
+                        <property name="pane_border">1</property>
+                        <property name="pane_position"></property>
+                        <property name="pane_size"></property>
+                        <property name="permission">protected</property>
+                        <property name="pin_button">1</property>
+                        <property name="pos"></property>
+                        <property name="resize">Resizable</property>
+                        <property name="show">1</property>
+                        <property name="size"></property>
+                        <property name="style">wxDP_DEFAULT</property>
+                        <property name="subclass">; ; forward_declare</property>
+                        <property name="toolbar_pane">0</property>
+                        <property name="tooltip"></property>
+                        <property name="validator_data_type"></property>
+                        <property name="validator_style">wxFILTER_NONE</property>
+                        <property name="validator_type">wxDefaultValidator</property>
+                        <property name="validator_variable"></property>
+                        <property name="window_extra_style"></property>
+                        <property name="window_name"></property>
+                        <property name="window_style"></property>
+                    </object>
+                </object>
+                <object class="sizeritem" expanded="1">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticText" expanded="1">
+                        <property name="BottomDockable">1</property>
+                        <property name="LeftDockable">1</property>
+                        <property name="RightDockable">1</property>
+                        <property name="TopDockable">1</property>
+                        <property name="aui_layer"></property>
+                        <property name="aui_name"></property>
+                        <property name="aui_position"></property>
+                        <property name="aui_row"></property>
+                        <property name="best_size"></property>
+                        <property name="bg"></property>
+                        <property name="caption"></property>
+                        <property name="caption_visible">1</property>
+                        <property name="center_pane">0</property>
+                        <property name="close_button">1</property>
+                        <property name="context_help"></property>
+                        <property name="context_menu">1</property>
+                        <property name="default_pane">0</property>
+                        <property name="dock">Dock</property>
+                        <property name="dock_fixed">0</property>
+                        <property name="docking">Left</property>
+                        <property name="enabled">1</property>
+                        <property name="fg"></property>
+                        <property name="floatable">1</property>
+                        <property name="font"></property>
+                        <property name="gripper">0</property>
+                        <property name="hidden">0</property>
+                        <property name="id">wxID_ANY</property>
+                        <property name="label">〜</property>
+                        <property name="markup">0</property>
+                        <property name="max_size"></property>
+                        <property name="maximize_button">0</property>
+                        <property name="maximum_size"></property>
+                        <property name="min_size"></property>
+                        <property name="minimize_button">0</property>
+                        <property name="minimum_size"></property>
+                        <property name="moveable">1</property>
+                        <property name="name">m_staticText</property>
+                        <property name="pane_border">1</property>
+                        <property name="pane_position"></property>
+                        <property name="pane_size"></property>
+                        <property name="permission">protected</property>
+                        <property name="pin_button">1</property>
+                        <property name="pos"></property>
+                        <property name="resize">Resizable</property>
+                        <property name="show">1</property>
+                        <property name="size"></property>
+                        <property name="style"></property>
+                        <property name="subclass">; ; forward_declare</property>
+                        <property name="toolbar_pane">0</property>
+                        <property name="tooltip"></property>
+                        <property name="window_extra_style"></property>
+                        <property name="window_name"></property>
+                        <property name="window_style"></property>
+                        <property name="wrap">-1</property>
+                    </object>
+                </object>
+                <object class="sizeritem" expanded="1">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxDatePickerCtrl" expanded="1">
+                        <property name="BottomDockable">1</property>
+                        <property name="LeftDockable">1</property>
+                        <property name="RightDockable">1</property>
+                        <property name="TopDockable">1</property>
+                        <property name="aui_layer"></property>
+                        <property name="aui_name"></property>
+                        <property name="aui_position"></property>
+                        <property name="aui_row"></property>
+                        <property name="best_size"></property>
+                        <property name="bg"></property>
+                        <property name="caption"></property>
+                        <property name="caption_visible">1</property>
+                        <property name="center_pane">0</property>
+                        <property name="close_button">1</property>
+                        <property name="context_help"></property>
+                        <property name="context_menu">1</property>
+                        <property name="default_pane">0</property>
+                        <property name="dock">Dock</property>
+                        <property name="dock_fixed">0</property>
+                        <property name="docking">Left</property>
+                        <property name="enabled">1</property>
+                        <property name="fg"></property>
+                        <property name="floatable">1</property>
+                        <property name="font"></property>
+                        <property name="gripper">0</property>
+                        <property name="hidden">0</property>
+                        <property name="id">wxID_ANY</property>
+                        <property name="max_size"></property>
+                        <property name="maximize_button">0</property>
+                        <property name="maximum_size"></property>
+                        <property name="min_size"></property>
+                        <property name="minimize_button">0</property>
+                        <property name="minimum_size"></property>
+                        <property name="moveable">1</property>
+                        <property name="name">m_datePickerTo</property>
+                        <property name="pane_border">1</property>
+                        <property name="pane_position"></property>
+                        <property name="pane_size"></property>
+                        <property name="permission">protected</property>
+                        <property name="pin_button">1</property>
+                        <property name="pos"></property>
+                        <property name="resize">Resizable</property>
+                        <property name="show">1</property>
+                        <property name="size"></property>
+                        <property name="style">wxDP_DEFAULT</property>
+                        <property name="subclass">; ; forward_declare</property>
+                        <property name="toolbar_pane">0</property>
+                        <property name="tooltip"></property>
+                        <property name="validator_data_type"></property>
+                        <property name="validator_style">wxFILTER_NONE</property>
+                        <property name="validator_type">wxDefaultValidator</property>
+                        <property name="validator_variable"></property>
+                        <property name="window_extra_style"></property>
+                        <property name="window_name"></property>
+                        <property name="window_style"></property>
+                    </object>
+                </object>
+                <object class="sizeritem" expanded="1">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxButton" expanded="1">
+                        <property name="BottomDockable">1</property>
+                        <property name="LeftDockable">1</property>
+                        <property name="RightDockable">1</property>
+                        <property name="TopDockable">1</property>
+                        <property name="aui_layer"></property>
+                        <property name="aui_name"></property>
+                        <property name="aui_position"></property>
+                        <property name="aui_row"></property>
+                        <property name="best_size"></property>
+                        <property name="bg"></property>
+                        <property name="bitmap"></property>
+                        <property name="caption"></property>
+                        <property name="caption_visible">1</property>
+                        <property name="center_pane">0</property>
+                        <property name="close_button">1</property>
+                        <property name="context_help"></property>
+                        <property name="context_menu">1</property>
+                        <property name="current"></property>
+                        <property name="default">0</property>
+                        <property name="default_pane">0</property>
+                        <property name="disabled"></property>
+                        <property name="dock">Dock</property>
+                        <property name="dock_fixed">0</property>
+                        <property name="docking">Left</property>
+                        <property name="enabled">1</property>
+                        <property name="fg"></property>
+                        <property name="floatable">1</property>
+                        <property name="focus"></property>
+                        <property name="font"></property>
+                        <property name="gripper">0</property>
+                        <property name="hidden">0</property>
+                        <property name="id">ID_PROCESS</property>
+                        <property name="label">実行</property>
+                        <property name="margins"></property>
+                        <property name="markup">0</property>
+                        <property name="max_size"></property>
+                        <property name="maximize_button">0</property>
+                        <property name="maximum_size"></property>
+                        <property name="min_size"></property>
+                        <property name="minimize_button">0</property>
+                        <property name="minimum_size"></property>
+                        <property name="moveable">1</property>
+                        <property name="name">m_button</property>
+                        <property name="pane_border">1</property>
+                        <property name="pane_position"></property>
+                        <property name="pane_size"></property>
+                        <property name="permission">protected</property>
+                        <property name="pin_button">1</property>
+                        <property name="pos"></property>
+                        <property name="position"></property>
+                        <property name="pressed"></property>
+                        <property name="resize">Resizable</property>
+                        <property name="show">1</property>
+                        <property name="size"></property>
+                        <property name="style"></property>
+                        <property name="subclass">; ; forward_declare</property>
+                        <property name="toolbar_pane">0</property>
+                        <property name="tooltip"></property>
+                        <property name="validator_data_type"></property>
+                        <property name="validator_style">wxFILTER_NONE</property>
+                        <property name="validator_type">wxDefaultValidator</property>
+                        <property name="validator_variable"></property>
+                        <property name="window_extra_style"></property>
+                        <property name="window_name"></property>
+                        <property name="window_style"></property>
+                        <event name="OnButtonClick">OnClick</event>
+                    </object>
+                </object>
+            </object>
+        </object>
+    </object>
+</wxFormBuilder_Project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/Porori.bat	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,7 @@
+@echo off
+set PDIR=C:\Users\KAIGO\Desktop\Porori
+mkdir %PDIR%
+copy S:\Current\0000_Every\ÅV”F’èî•ñ\Porori\bin\* %PDIR%
+rem copy S:\Current\0000_Every\ÅV”F’èî•ñ\Porori\bin64\* %PDIR%
+cd %PDIR%
+call %PDIR%\make
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/a.csv	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,157 @@
+”í•Û”Ô,Ž–¼,\¿“ú,‹æ•ª,ŠJŽn“ú,I—¹“ú,ŠúŠÔ,R¸‰ï
+="0800469686",ŽR“c ‘¾˜Y003, 2019-10-15,V‹K, 2019-10-15, 2020-10-31,12, 2020-01-17
+="0800116627",ŽR“c ‘¾˜Y013, 2019-11-12,V‹K, 2019-11-12, 2020-11-30,12, 2020-01-17
+="0200094557",ŽR“c ‘¾˜Y019, 2019-11-14,V‹K, 2019-11-14, 2020-11-30,12, 2020-01-17
+="0300143253",ŽR“c ‘¾˜Y020, 2019-11-14,‹æ•Ï, 2019-11-14, 2020-11-30,12, 2020-01-17
+="0800438454",ŽR“c ‘¾˜Y024, 2019-11-14,V‹K, 2019-11-14, 2020-11-30,12, 2020-01-17
+="0300133967",ŽR“c ‘¾˜Y027, 2019-11-15,V‹K, 2019-11-15, 2020-11-30,12, 2020-01-17
+="0800288134",ŽR“c ‘¾˜Y029, 2019-11-15,V‹K, 2019-11-15, 2020-11-30,12, 2020-01-17
+="0300100430",ŽR“c ‘¾˜Y032, 2019-11-18,V‹K, 2019-11-18, 2020-11-30,12, 2020-01-17
+="0800031885",ŽR“c ‘¾˜Y034, 2019-11-18,XV, 2020-01-01, 2020-12-31,12, 2020-01-17
+="0800154863",ŽR“c ‘¾˜Y037, 2019-11-19,V‹K, 2019-11-19, 2020-11-30,12, 2020-01-17
+="0300002595",ŽR“c ‘¾˜Y042, 2019-11-22,V‹K, 2019-11-22, 2020-11-30,12, 2020-01-17
+="0200022920",ŽR“c ‘¾˜Y046, 2019-11-25,V‹K, 2019-11-25, 2020-11-30,12, 2020-01-17
+="0800116490",ŽR“c ‘¾˜Y051, 2019-11-25,V‹K, 2019-11-25, 2020-11-30,12, 2020-01-17
+="0200078136",ŽR“c ‘¾˜Y047, 2019-11-25,V‹K, 2019-11-25, 2020-11-30,12, 2020-01-17
+="0800290449",ŽR“c ‘¾˜Y055, 2019-11-26,‹æ•Ï, 2019-11-26, 2020-11-30,12, 2020-01-17
+="0300099866",ŽR“c ‘¾˜Y059, 2019-11-27,V‹K, 2019-11-27, 2020-11-30,12, 2020-01-17
+="0300137245",ŽR“c ‘¾˜Y060, 2019-11-27,V‹K, 2019-11-27, 2020-11-30,12, 2020-01-17
+="0800287847",ŽR“c ‘¾˜Y061, 2019-11-27,V‹K, 2019-11-27, 2020-11-30,12, 2020-01-17
+="0800355419",ŽR“c ‘¾˜Y062, 2019-11-27,V‹K, 2019-11-27, 2020-11-30,12, 2020-01-17
+="0300123759",ŽR“c ‘¾˜Y066, 2019-11-28,V‹K, 2019-11-28, 2020-11-30,12, 2020-01-17
+="0300090753",ŽR“c ‘¾˜Y063, 2019-11-28,V‹K, 2019-11-28, 2020-11-30,12, 2020-01-17
+="0800018021",ŽR“c ‘¾˜Y070, 2019-11-29,‹æ•Ï, 2019-11-29, 2020-11-30,12, 2020-01-17
+="0300049966",ŽR“c ‘¾˜Y069, 2019-11-29,XV, 2019-12-01, 2022-11-30,36, 2020-01-17
+="0800458803",ŽR“c ‘¾˜Y074, 2019-11-29,V‹K, 2019-11-29, 2020-11-30,12, 2020-01-17
+="0800221358",ŽR“c ‘¾˜Y073, 2019-11-29,XV, 2020-01-01, 2020-12-31,12, 2020-01-17
+="0300112412",ŽR“c ‘¾˜Y087, 2019-12-01,‹æ•Ï, 2019-12-01, 2020-11-30,12, 2020-01-17
+="0300116426",ŽR“c ‘¾˜Y088, 2019-12-01,‹æ•Ï, 2019-12-01, 2020-11-30,12, 2020-01-17
+="0800091110",ŽR“c ‘¾˜Y098, 2019-12-01,‹æ•Ï, 2019-12-01, 2020-11-30,12, 2020-01-17
+="0800131405",ŽR“c ‘¾˜Y102, 2019-12-01,Žx‰î, 2019-12-01, 2020-11-30,12, 2020-01-17
+="0800190517",ŽR“c ‘¾˜Y107, 2019-12-01,‹æ•Ï, 2019-12-01, 2020-11-30,12, 2020-01-17
+="0800401208",ŽR“c ‘¾˜Y113, 2019-12-01,V‹K, 2019-12-01, 2020-11-30,12, 2020-01-17
+="0800427720",ŽR“c ‘¾˜Y114, 2019-12-01,Žx‰î, 2019-12-01, 2020-11-30,12, 2020-01-17
+="0800458692",ŽR“c ‘¾˜Y115, 2019-12-01,‹æ•Ï, 2019-12-01, 2020-11-30,12, 2020-01-17
+="0300021832",ŽR“c ‘¾˜Y136, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300005381",ŽR“c ‘¾˜Y132, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300017568",ŽR“c ‘¾˜Y135, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0100058766",ŽR“c ‘¾˜Y120, 2019-12-02,‹æ•Ï, 2019-12-02, 2020-12-31,12, 2020-01-17
+="0300032648",ŽR“c ‘¾˜Y138, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300043003",ŽR“c ‘¾˜Y139, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300121438",ŽR“c ‘¾˜Y140, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300121691",ŽR“c ‘¾˜Y141, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800277167",ŽR“c ‘¾˜Y167, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800065240",ŽR“c ‘¾˜Y146, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800128552",ŽR“c ‘¾˜Y150, 2019-12-02,V‹K, 2019-12-02, 2020-12-31,12, 2020-01-17
+="0800137012",ŽR“c ‘¾˜Y151, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800140684",ŽR“c ‘¾˜Y152, 2019-12-02,XV, 2020-02-01, 2021-01-31,12, 2020-01-17
+="0800016592",ŽR“c ‘¾˜Y144, 2019-12-02,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800189705",ŽR“c ‘¾˜Y157, 2019-12-02,‹æ•Ï, 2019-12-02, 2020-12-31,12, 2020-01-17
+="0200023820",ŽR“c ‘¾˜Y176, 2019-12-03,‹æ•Ï, 2019-12-03, 2020-12-31,12, 2020-01-17
+="0200053281",ŽR“c ‘¾˜Y178, 2019-12-03,Žx‰î, 2019-12-03, 2020-12-31,12, 2020-01-17
+="0200102088",ŽR“c ‘¾˜Y187, 2019-12-03,V‹K, 2019-12-03, 2020-12-31,12, 2020-01-17
+="0300120296",ŽR“c ‘¾˜Y195, 2019-12-03,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300133673",ŽR“c ‘¾˜Y196, 2019-12-03,XV, 2020-01-01, 2020-12-31,12, 2020-01-17
+="0800185483",ŽR“c ‘¾˜Y205, 2019-12-03,V‹K, 2019-12-03, 2020-12-31,12, 2020-01-17
+="0300111300",ŽR“c ‘¾˜Y278, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0100014416",ŽR“c ‘¾˜Y211, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0100027658",ŽR“c ‘¾˜Y213, 2019-12-04,XV, 2020-02-01, 2021-01-31,12, 2020-01-17
+="0100031370",ŽR“c ‘¾˜Y214, 2019-12-04,XV, 2020-02-01, 2021-01-31,12, 2020-01-17
+="0100066980",ŽR“c ‘¾˜Y219, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0100068443",ŽR“c ‘¾˜Y220, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0100077310",ŽR“c ‘¾˜Y222, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0100104920",ŽR“c ‘¾˜Y228, 2019-12-04,V‹K, 2019-12-04, 2020-12-31,12, 2020-01-17
+="0200006020",ŽR“c ‘¾˜Y237, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0200020235",ŽR“c ‘¾˜Y238, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0200093151",ŽR“c ‘¾˜Y246, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300001211",ŽR“c ‘¾˜Y253, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300074510",ŽR“c ‘¾˜Y265, 2019-12-04,V‹K, 2019-12-04, 2020-12-31,12, 2020-01-17
+="0300075177",ŽR“c ‘¾˜Y267, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300078915",ŽR“c ‘¾˜Y269, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300082726",ŽR“c ‘¾˜Y272, 2019-12-04,XV, 2020-02-01, 2021-01-31,12, 2020-01-17
+="0100000873",ŽR“c ‘¾˜Y209, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300115314",ŽR“c ‘¾˜Y279, 2019-12-04,‹æ•Ï, 2019-12-04, 2020-12-31,12, 2020-01-17
+="0300130860",ŽR“c ‘¾˜Y281, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300146112",ŽR“c ‘¾˜Y282, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800010977",ŽR“c ‘¾˜Y283, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800015650",ŽR“c ‘¾˜Y284, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800027160",ŽR“c ‘¾˜Y285, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800042283",ŽR“c ‘¾˜Y286, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800420024",ŽR“c ‘¾˜Y328, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800070228",ŽR“c ‘¾˜Y289, 2019-12-04,XV, 2020-02-01, 2021-01-31,12, 2020-01-17
+="0800073898",ŽR“c ‘¾˜Y290, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800080118",ŽR“c ‘¾˜Y291, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800087112",ŽR“c ‘¾˜Y293, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800095727",ŽR“c ‘¾˜Y297, 2019-12-04,V‹K, 2019-12-04, 2020-12-31,12, 2020-01-17
+="0800102421",ŽR“c ‘¾˜Y299, 2019-12-04,XV, 2020-01-01, 2022-12-31,36, 2020-01-17
+="0800116074",ŽR“c ‘¾˜Y302, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800159881",ŽR“c ‘¾˜Y305, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800242622",ŽR“c ‘¾˜Y317, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800251583",ŽR“c ‘¾˜Y319, 2019-12-04,XV, 2020-02-01, 2022-01-31,24, 2020-01-17
+="0800277159",ŽR“c ‘¾˜Y321, 2019-12-04,XV, 2020-02-01, 2022-01-31,24, 2020-01-17
+="0800372623",ŽR“c ‘¾˜Y324, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800401666",ŽR“c ‘¾˜Y325, 2019-12-04,XV, 2020-02-01, 2022-01-31,24, 2020-01-17
+="0800406005",ŽR“c ‘¾˜Y326, 2019-12-04,V‹K, 2019-12-04, 2020-12-31,12, 2020-01-17
+="0800066107",ŽR“c ‘¾˜Y288, 2019-12-04,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800393876",ŽR“c ‘¾˜Y414, 2019-12-05,XV, 2020-02-01, 2022-01-31,24, 2020-01-17
+="0100088223",ŽR“c ‘¾˜Y346, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0200068939",ŽR“c ‘¾˜Y356, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0200072839",ŽR“c ‘¾˜Y357, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0200090195",ŽR“c ‘¾˜Y361, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300064264",ŽR“c ‘¾˜Y369, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300078877",ŽR“c ‘¾˜Y371, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800008131",ŽR“c ‘¾˜Y384, 2019-12-05,XV, 2020-02-01, 2022-01-31,24, 2020-01-17
+="0800018323",ŽR“c ‘¾˜Y385, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800066450",ŽR“c ‘¾˜Y387, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800079969",ŽR“c ‘¾˜Y389, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800083737",ŽR“c ‘¾˜Y390, 2019-12-05,‹æ•Ï, 2019-12-05, 2020-12-31,12, 2020-01-17
+="0800093635",ŽR“c ‘¾˜Y393, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800129940",ŽR“c ‘¾˜Y398, 2019-12-05,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800172365",ŽR“c ‘¾˜Y405, 2019-12-05,‹æ•Ï, 2019-12-05, 2020-12-31,12, 2020-01-17
+="0100002868",ŽR“c ‘¾˜Y334, 2019-12-05,XV, 2020-02-01, 2022-01-31,24, 2020-01-17
+="0100024160",ŽR“c ‘¾˜Y417, 2019-12-06,V‹K, 2019-12-06, 2020-12-31,12, 2020-01-17
+="0100061830",ŽR“c ‘¾˜Y422, 2019-12-06,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0200003829",ŽR“c ‘¾˜Y433, 2019-12-06,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0200085086",ŽR“c ‘¾˜Y444, 2019-12-06,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300098894",ŽR“c ‘¾˜Y456, 2019-12-06,‹æ•Ï, 2019-12-06, 2020-12-31,12, 2020-01-17
+="0800005345",ŽR“c ‘¾˜Y461, 2019-12-06,XV, 2020-02-01, 2021-01-31,12, 2020-01-17
+="0800029120",ŽR“c ‘¾˜Y468, 2019-12-06,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800056578",ŽR“c ‘¾˜Y472, 2019-12-06,V‹K, 2019-12-06, 2020-12-31,12, 2020-01-17
+="0800208122",ŽR“c ‘¾˜Y489, 2019-12-06,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0800309700",ŽR“c ‘¾˜Y496, 2019-12-06,XV, 2020-02-01, 2022-01-31,24, 2020-01-17
+="0800264855",ŽR“c ‘¾˜Y556, 2019-12-09,XV, 2020-01-01, 2021-12-31,24, 2020-01-17
+="0100032937",ŽR“c ‘¾˜Y508, 2019-12-09,‹æ•Ï, 2019-12-09, 2020-12-31,12, 2020-01-17
+="0100069890",ŽR“c ‘¾˜Y515, 2019-12-09,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0100090848",ŽR“c ‘¾˜Y517, 2019-12-09,V‹K, 2019-12-09, 2020-12-31,12, 2020-01-17
+="0200049241",ŽR“c ‘¾˜Y522, 2019-12-09,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0100029324",ŽR“c ‘¾˜Y507, 2019-12-09,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0300063322",ŽR“c ‘¾˜Y533, 2019-12-09,V‹K, 2019-12-09, 2020-12-31,12, 2020-01-17
+="0800017190",ŽR“c ‘¾˜Y536, 2019-12-09,V‹K, 2019-12-09, 2020-12-31,12, 2020-01-17
+="0800025940",ŽR“c ‘¾˜Y538, 2019-12-09,Žx‰î, 2019-12-09, 2020-12-31,12, 2020-01-17
+="0800085764",ŽR“c ‘¾˜Y542, 2019-12-09,‹æ•Ï, 2019-12-09, 2020-12-31,12, 2020-01-17
+="0800095042",ŽR“c ‘¾˜Y543, 2019-12-09,V‹K, 2019-12-09, 2020-12-31,12, 2020-01-17
+="0800113407",ŽR“c ‘¾˜Y546, 2019-12-09,V‹K, 2019-12-09, 2020-12-31,12, 2020-01-17
+="0200077059",ŽR“c ‘¾˜Y526, 2019-12-09,XV, 2020-02-01, 2023-01-31,36, 2020-01-17
+="0100000407",ŽR“c ‘¾˜Y561, 2019-12-10,V‹K, 2019-12-10, 2020-12-31,12, 2020-01-17
+="0300059724",ŽR“c ‘¾˜Y571, 2019-12-10,V‹K, 2019-12-10, 2020-12-31,12, 2020-01-17
+="0800358868",ŽR“c ‘¾˜Y589, 2019-12-10,V‹K, 2019-12-10, 2020-12-31,12, 2020-01-17
+="0800361184",ŽR“c ‘¾˜Y590, 2019-12-10,V‹K, 2019-12-10, 2020-12-31,12, 2020-01-17
+="0800155223",ŽR“c ‘¾˜Y600, 2019-12-11,V‹K, 2019-12-11, 2020-12-31,12, 2020-01-17
+="0800224489",ŽR“c ‘¾˜Y602, 2019-12-11,XV, 2020-01-01, 2022-12-31,36, 2020-01-17
+="0800365082",ŽR“c ‘¾˜Y604, 2019-12-11,V‹K, 2019-12-11, 2020-12-31,12, 2020-01-17
+="0800384087",ŽR“c ‘¾˜Y605, 2019-12-11,V‹K, 2019-12-11, 2020-12-31,12, 2020-01-17
+="0800435315",ŽR“c ‘¾˜Y607, 2019-12-11,V‹K, 2019-12-11, 2020-12-31,12, 2020-01-17
+="0800142130",ŽR“c ‘¾˜Y618, 2019-12-12,V‹K, 2019-12-12, 2020-12-31,12, 2020-01-17
+="0100075040",ŽR“c ‘¾˜Y610, 2019-12-12,V‹K, 2019-12-12, 2020-12-31,12, 2020-01-17
+="0100065266",ŽR“c ‘¾˜Y609, 2019-12-12,‹æ•Ï, 2019-12-12, 2020-12-31,12, 2020-01-17
+="0800123666",ŽR“c ‘¾˜Y616, 2019-12-12,V‹K, 2019-12-12, 2020-12-31,12, 2020-01-17
+="0100090201",ŽR“c ‘¾˜Y611, 2019-12-12,V‹K, 2019-12-12, 2020-12-31,12, 2020-01-17
+="0100078686",ŽR“c ‘¾˜Y623, 2019-12-13,V‹K, 2019-12-13, 2020-12-31,12, 2020-01-17
+="0800012317",ŽR“c ‘¾˜Y625, 2019-12-13,V‹K, 2019-12-13, 2020-12-31,12, 2020-01-17
+="0100116057",ŽR“c ‘¾˜Y640, 2019-12-16,V‹K, 2019-12-16, 2020-12-31,12, 2020-01-17
+="0800059020",ŽR“c ‘¾˜Y649, 2019-12-16,Žx‰î, 2019-12-16, 2020-12-31,12, 2020-01-17
+="0800415152",ŽR“c ‘¾˜Y654, 2019-12-16,V‹K, 2019-12-16, 2020-12-31,12, 2020-01-17
+="0100030730",ŽR“c ‘¾˜Y638, 2019-12-16,Žx‰î, 2019-12-16, 2020-12-31,12, 2020-01-17
+="0800101522",ŽR“c ‘¾˜Y667, 2019-12-17,Žx‰î, 2019-12-17, 2020-12-31,12, 2020-01-17
+="0200045530",ŽR“c ‘¾˜Y659, 2019-12-17,V‹K, 2019-12-17, 2020-12-31,12, 2020-01-17
+="0800493609",ŽR“c ‘¾˜Y709, 2020-01-06,“]“ü, 2020-01-06, 2021-01-31,12, 2020-01-15
Binary file src/kaigo/Porori/export.mdb has changed
Binary file src/kaigo/Porori/image/sample.ico has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/image/sample.rc	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        samples/samples.rc
+// Purpose:     a standard Win32 .rc file for the wxWindows samples
+// Author:      Vadim Zeitlin
+// Modified by:
+// Created:     04.08.03
+// RCS-ID:      $Id: sample.rc 22863 2003-08-14 14:08:53Z VS $
+// Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// this minimal resource file is all what is needed for most of the wxWindows
+// samples
+
+// note that the icon used by the Explorer (i.e. the programs icon) is the
+// first icon in the executable and the icons are sorted both by their order
+// (Win9x) and by alphabetically (!) (NT), so put this icon first and give it
+// a name starting with "a"
+aaaaaaaa ICON "sample.ico"
+
+// this icon is used with wxFrame::SetIcon()
+sample ICON "sample.ico"
+
+// set this to 1 if you don't want to use manifest resource (manifest resource
+// is needed to enable visual styles on Windows XP - see docs/msw/winxp.txt
+// for more information)
+#define wxUSE_NO_MANIFEST 0
+
+// this is not always needed but doesn't hurt (except making the executable
+// very slightly larger): this file contains the standard icons, cursors, ...
+#include "wx/msw/wx.rc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/image/sample.xpm	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sample_xpm[] = {
+"16 16 4 1",
+" 	c None",
+".	c #6ECB63",
+"+	c #8C0214",
+"@	c #ECE6B4",
+"................",
+"................",
+".++.++.++.++.++.",
+".++.++.++.++.++.",
+".++.++.++.++.++.",
+".++.++.++.++.++.",
+".++.++.++.++.++.",
+".++.++.++.++.++.",
+".++.++.++.++.++.",
+".++.++.++.++.++.",
+".++.++.++.++.++.",
+".@@.@@.@@.@@.@@.",
+".@@.@@.@@.@@.@@.",
+".@@.@@.@@.@@.@@.",
+"................",
+"................"};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/include/main.h	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,20 @@
+// Filename   : main.h
+// Last Change: 2016-12-01 –Ø 18:02:02.
+//
+#include <wx/wx.h>
+
+// private classes
+// Define a new application type, each program should derive a class from wxApp
+class MyApp : public wxApp
+{
+    DECLARE_CLASS( MyApp )
+public:
+    MyApp();
+    ~MyApp();
+
+    virtual bool OnInit();
+    virtual int  OnExit();
+};
+
+DECLARE_APP(MyApp)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/include/porori.h	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,50 @@
+/* Filename   : porori.h
+   Last Change: 2020-02-12 … 15:55:27.
+                     by Takayuki Mutoh
+*/
+
+#pragma once
+
+#include <wx/artprov.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/datectrl.h>
+#include <wx/dateevt.h>
+#include <wx/gdicmn.h>
+#include <wx/font.h>
+#include <wx/colour.h>
+#include <wx/settings.h>
+#include <wx/string.h>
+#include <wx/stattext.h>
+#include <wx/bitmap.h>
+#include <wx/image.h>
+#include <wx/icon.h>
+#include <wx/button.h>
+#include <wx/sizer.h>
+#include <wx/frame.h>
+#include <wx/textfile.h>
+
+class PororiFrame : public wxFrame
+{
+	private:
+		enum {
+			ID_PROCESS = 1000
+		};
+
+	protected:
+		wxDatePickerCtrl* m_datePickerFrom;
+		wxStaticText*     m_staticText;
+		wxDatePickerCtrl* m_datePickerTo;
+		wxButton*         m_button;
+
+		wxString m_json = wxT("porori.json");
+		wxString m_icon = wxT("sample");
+
+		// Virtual event handlers, overide them in your derived class
+		virtual void OnClick(wxCommandEvent& event);
+
+	public:
+		PororiFrame(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Porori"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL);
+		~PororiFrame();
+
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/make.bat	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,22 @@
+@echo off
+
+rem --------------------------
+rem Config (make porori.json)
+rem --------------------------
+porori.exe
+
+rem --------------------------
+rem Get Data (recent)
+rem --------------------------
+set ACCESS="C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE"
+set MDB=C:\Users\KAIGO\Desktop\Porori\export.mdb
+set CSV=C:\Users\KAIGO\Documents\nintei.csv
+
+%ACCESS% %MDB% /nostartup /x data
+
+rem --------------------------
+rem Do Filter
+rem --------------------------
+porori_go.exe %CSV% > a.csv
+start a.csv
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/nintei.csv	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,709 @@
+0800285976          ,ŽR“c ‘¾˜Y001,20191009,02,20200110,20191201,20221130
+0800118522          ,ŽR“c ‘¾˜Y002,20191010,01,20200110,20191010,20201031
+0800469686          ,ŽR“c ‘¾˜Y003,20191015,01,20200117,20191015,20201031
+0200075994          ,ŽR“c ‘¾˜Y004,20191101,02,20200110,20200101,20221231
+0100125005          ,ŽR“c ‘¾˜Y005,20191105,02,20200110,20200101,20221231
+0800159237          ,ŽR“c ‘¾˜Y006,20191105,10,20200110,20191105,20201130
+0800403448          ,ŽR“c ‘¾˜Y007,20191105,02,20200110,20200101,20221231
+0800151228          ,ŽR“c ‘¾˜Y008,20191106,02,20200110,20200101,20221231
+0800185700          ,ŽR“c ‘¾˜Y009,20191106,01,20200110,20191106,20201130
+0100063689          ,ŽR“c ‘¾˜Y010,20191107,02,20200110,20200101,20221231
+0200018893          ,ŽR“c ‘¾˜Y011,20191107,02,20200110,20200101,20211231
+0300139353          ,ŽR“c ‘¾˜Y012,20191108,02,20200124,20200101,20211231
+0800116627          ,ŽR“c ‘¾˜Y013,20191112,01,20200117,20191112,20201130
+0800343542          ,ŽR“c ‘¾˜Y014,20191112,01,20200110,20191112,20201130
+0100082730          ,ŽR“c ‘¾˜Y015,20191113,10,20200110,20191113,20201130
+0100122537          ,ŽR“c ‘¾˜Y016,20191113,02,20200110,20200101,20221231
+0800408539          ,ŽR“c ‘¾˜Y017,20191113,02,20200131,20200101,20221231
+0200026535          ,ŽR“c ‘¾˜Y018,20191114,05,20200110,20191114,20201130
+0200094557          ,ŽR“c ‘¾˜Y019,20191114,01,20200117,20191114,20201130
+0300143253          ,ŽR“c ‘¾˜Y020,20191114,05,20200117,20191114,20201130
+0300145256          ,ŽR“c ‘¾˜Y021,20191114,01,20200124,20191114,20201130
+0800056780          ,ŽR“c ‘¾˜Y022,20191114,01,20200110,,
+0800360668          ,ŽR“c ‘¾˜Y023,20191114,01,20200110,20191114,20201130
+0800438454          ,ŽR“c ‘¾˜Y024,20191114,01,20200117,20191114,20201130
+0100007789          ,ŽR“c ‘¾˜Y025,20191115,01,20200110,20191115,20201130
+0300048889          ,ŽR“c ‘¾˜Y026,20191115,02,20200110,20200101,20221231
+0300133967          ,ŽR“c ‘¾˜Y027,20191115,01,20200117,20191115,20201130
+0800167833          ,ŽR“c ‘¾˜Y028,20191115,01,20200110,20191115,20201130
+0800288134          ,ŽR“c ‘¾˜Y029,20191115,01,20200117,20191115,20201130
+0100042703          ,ŽR“c ‘¾˜Y030,20191118,05,20200110,20191118,20201130
+0100048779          ,ŽR“c ‘¾˜Y031,20191118,01,20200110,20191118,20201130
+0300100430          ,ŽR“c ‘¾˜Y032,20191118,01,20200117,20191118,20201130
+0300112064          ,ŽR“c ‘¾˜Y033,20191118,10,20200110,20191118,20201130
+0800031885          ,ŽR“c ‘¾˜Y034,20191118,02,20200117,20200101,20201231
+0800206030          ,ŽR“c ‘¾˜Y035,20191118,02,20200110,20200101,20221231
+0300058558          ,ŽR“c ‘¾˜Y036,20191119,01,20200131,20191119,20201130
+0800154863          ,ŽR“c ‘¾˜Y037,20191119,01,20200117,20191119,20201130
+0800127807          ,ŽR“c ‘¾˜Y038,20191120,01,20200110,20191120,20201130
+0300041159          ,ŽR“c ‘¾˜Y039,20191121,10,20200124,20191121,20201130
+0800226988          ,ŽR“c ‘¾˜Y040,20191121,05,20200110,20191121,20201130
+0100120879          ,ŽR“c ‘¾˜Y041,20191122,01,20200110,20191122,20201130
+0300002595          ,ŽR“c ‘¾˜Y042,20191122,01,20200117,20191122,20201130
+0800116082          ,ŽR“c ‘¾˜Y043,20191122,01,20200110,20191122,20201130
+0800144990          ,ŽR“c ‘¾˜Y044,20191122,01,20200110,,
+0800176107          ,ŽR“c ‘¾˜Y045,20191122,01,20200110,20191122,20201130
+0200022920          ,ŽR“c ‘¾˜Y046,20191125,01,20200117,20191125,20201130
+0200078136          ,ŽR“c ‘¾˜Y047,20191125,01,20200117,20191125,20201130
+0300022979          ,ŽR“c ‘¾˜Y048,20191125,01,20200110,20191125,20201130
+0300073816          ,ŽR“c ‘¾˜Y049,20191125,02,20200110,20200101,20221231
+0300111963          ,ŽR“c ‘¾˜Y050,20191125,01,20200124,20191125,20201130
+0800116490          ,ŽR“c ‘¾˜Y051,20191125,01,20200117,20191125,20201130
+0800133688          ,ŽR“c ‘¾˜Y052,20191125,01,20200110,20191125,20201130
+0800077214          ,ŽR“c ‘¾˜Y053,20191126,01,20200110,20191126,20201130
+0800261716          ,ŽR“c ‘¾˜Y054,20191126,01,20200110,20191126,20201130
+0800290449          ,ŽR“c ‘¾˜Y055,20191126,05,20200117,20191126,20201130
+0800302137          ,ŽR“c ‘¾˜Y056,20191126,02,20200110,20200101,20221231
+0100003732          ,ŽR“c ‘¾˜Y057,20191127,05,20200110,20191127,20201130
+0200073096          ,ŽR“c ‘¾˜Y058,20191127,01,20200110,20191127,20201130
+0300099866          ,ŽR“c ‘¾˜Y059,20191127,01,20200117,20191127,20201130
+0300137245          ,ŽR“c ‘¾˜Y060,20191127,01,20200117,20191127,20201130
+0800287847          ,ŽR“c ‘¾˜Y061,20191127,01,20200117,20191127,20201130
+0800355419          ,ŽR“c ‘¾˜Y062,20191127,01,20200117,20191127,20201130
+0300090753          ,ŽR“c ‘¾˜Y063,20191128,01,20200117,20191128,20201130
+0300091733          ,ŽR“c ‘¾˜Y064,20191128,01,20200110,20191128,20201130
+0300102034          ,ŽR“c ‘¾˜Y065,20191128,01,20200124,20191128,20201130
+0300123759          ,ŽR“c ‘¾˜Y066,20191128,01,20200117,20191128,20201130
+0800095204          ,ŽR“c ‘¾˜Y067,20191128,01,20200110,20191128,20201130
+0100014912          ,ŽR“c ‘¾˜Y068,20191129,02,20200110,20200101,20221231
+0300049966          ,ŽR“c ‘¾˜Y069,20191129,02,20200117,20191201,20221130
+0800018021          ,ŽR“c ‘¾˜Y070,20191129,05,20200117,20191129,20201130
+0800056462          ,ŽR“c ‘¾˜Y071,20191129,01,20200110,20191129,20201130
+0800122112          ,ŽR“c ‘¾˜Y072,20191129,01,20200110,20191129,20201130
+0800221358          ,ŽR“c ‘¾˜Y073,20191129,02,20200117,20200101,20201231
+0800458803          ,ŽR“c ‘¾˜Y074,20191129,01,20200117,20191129,20201130
+0800490049          ,ŽR“c ‘¾˜Y075,20191129,01,20200110,20191129,20201130
+0100011000          ,ŽR“c ‘¾˜Y076,20191201,05,20200110,20191201,20201130
+0100017466          ,ŽR“c ‘¾˜Y077,20191201,10,20200110,20191201,20201130
+0100028719          ,ŽR“c ‘¾˜Y078,20191201,10,20200110,20191201,20201130
+0100062275          ,ŽR“c ‘¾˜Y079,20191201,05,20200110,20191201,20201130
+0100115557          ,ŽR“c ‘¾˜Y080,20191201,10,20200110,20191201,20201130
+0200045807          ,ŽR“c ‘¾˜Y081,20191201,10,20200110,20191201,20201130
+0200090373          ,ŽR“c ‘¾˜Y082,20191201,10,20200124,20191201,20201130
+0200100301          ,ŽR“c ‘¾˜Y083,20191201,10,20200124,20191201,20201130
+0300028829          ,ŽR“c ‘¾˜Y084,20191201,05,20200131,20191201,20201130
+0300069258          ,ŽR“c ‘¾˜Y085,20191201,10,20200131,20191201,20201130
+0300069746          ,ŽR“c ‘¾˜Y086,20191201,05,20200110,20191201,20201130
+0300112412          ,ŽR“c ‘¾˜Y087,20191201,05,20200117,20191201,20201130
+0300116426          ,ŽR“c ‘¾˜Y088,20191201,05,20200117,20191201,20201130
+0800007259          ,ŽR“c ‘¾˜Y089,20191201,01,20200110,20191201,20201130
+0800018013          ,ŽR“c ‘¾˜Y090,20191201,05,20200110,20191201,20201130
+0800028256          ,ŽR“c ‘¾˜Y091,20191201,10,20200110,20191201,20201130
+0800053765          ,ŽR“c ‘¾˜Y092,20191201,05,20200110,20191201,20201130
+0800055571          ,ŽR“c ‘¾˜Y093,20191201,05,20200110,20191201,20201130
+0800059755          ,ŽR“c ‘¾˜Y094,20191201,05,20200110,20191201,20201130
+0800068398          ,ŽR“c ‘¾˜Y095,20191201,05,20200110,20191201,20201130
+0800077176          ,ŽR“c ‘¾˜Y096,20191201,05,20200110,20191201,20201130
+0800080754          ,ŽR“c ‘¾˜Y097,20191201,10,20200110,20191201,20201130
+0800091110          ,ŽR“c ‘¾˜Y098,20191201,05,20200117,20191201,20201130
+0800100380          ,ŽR“c ‘¾˜Y99,20191201,10,20200110,20191201,20201130
+0800102863          ,ŽR“c ‘¾˜Y100,20191201,05,20200110,20191201,20201130
+0800108551          ,ŽR“c ‘¾˜Y101,20191201,10,20200110,20191201,20201130
+0800131405          ,ŽR“c ‘¾˜Y102,20191201,10,20200117,20191201,20201130
+0800135125          ,ŽR“c ‘¾˜Y103,20191201,10,20200110,20191201,20201130
+0800135249          ,ŽR“c ‘¾˜Y104,20191201,10,20200110,20191201,20201130
+0800136466          ,ŽR“c ‘¾˜Y105,20191201,05,20200110,20191201,20201130
+0800137110          ,ŽR“c ‘¾˜Y106,20191201,05,20200110,20191201,20201130
+0800190517          ,ŽR“c ‘¾˜Y107,20191201,05,20200117,20191201,20201130
+0800231027          ,ŽR“c ‘¾˜Y108,20191201,05,20200131,20191201,20201130
+0800233593          ,ŽR“c ‘¾˜Y109,20191201,10,20200110,20191201,20201130
+0800265100          ,ŽR“c ‘¾˜Y110,20191201,05,20200110,20191201,20201130
+0800348757          ,ŽR“c ‘¾˜Y111,20191201,01,20200110,20191201,20201130
+0800361761          ,ŽR“c ‘¾˜Y112,20191201,01,20200131,20191201,20201130
+0800401208          ,ŽR“c ‘¾˜Y113,20191201,01,20200117,20191201,20201130
+0800427720          ,ŽR“c ‘¾˜Y114,20191201,10,20200117,20191201,20201130
+0800458692          ,ŽR“c ‘¾˜Y115,20191201,05,20200117,20191201,20201130
+0100003708          ,ŽR“c ‘¾˜Y116,20191202,05,20200110,20191202,20201231
+0100023806          ,ŽR“c ‘¾˜Y117,20191202,05,20200124,20191202,20201231
+0100040859          ,ŽR“c ‘¾˜Y118,20191202,01,20200110,20191202,20201231
+0100053101          ,ŽR“c ‘¾˜Y119,20191202,01,20200110,20191202,20201231
+0100058766          ,ŽR“c ‘¾˜Y120,20191202,05,20200117,20191202,20201231
+0100059118          ,ŽR“c ‘¾˜Y121,20191202,05,20200110,20191202,20201231
+0100091569          ,ŽR“c ‘¾˜Y122,20191202,02,20200110,20200201,20230131
+0100092603          ,ŽR“c ‘¾˜Y123,20191202,01,20200110,20191202,20201231
+0100092883          ,ŽR“c ‘¾˜Y124,20191202,02,20200110,20200201,20230131
+0100113228          ,ŽR“c ‘¾˜Y125,20191202,01,20200110,20191202,20201231
+0200018699          ,ŽR“c ‘¾˜Y126,20191202,02,20200124,20200201,20230131
+0200020057          ,ŽR“c ‘¾˜Y127,20191202,01,20200110,20191202,20201231
+0200051238          ,ŽR“c ‘¾˜Y128,20191202,02,20200110,20200101,20221231
+0200064224          ,ŽR“c ‘¾˜Y129,20191202,01,20200110,20191202,20201231
+0200084993          ,ŽR“c ‘¾˜Y130,20191202,02,20200124,20200201,20230131
+0200096169          ,ŽR“c ‘¾˜Y131,20191202,02,20200110,20200201,20230131
+0300005381          ,ŽR“c ‘¾˜Y132,20191202,02,20200117,20200201,20230131
+0300005420          ,ŽR“c ‘¾˜Y133,20191202,02,20200124,20200201,20230131
+0300008020          ,ŽR“c ‘¾˜Y134,20191202,02,20200124,20200201,20230131
+0300017568          ,ŽR“c ‘¾˜Y135,20191202,02,20200117,20200201,20230131
+0300021832          ,ŽR“c ‘¾˜Y136,20191202,02,20200117,20200201,20230131
+0300031455          ,ŽR“c ‘¾˜Y137,20191202,02,20200124,20200201,20230131
+0300032648          ,ŽR“c ‘¾˜Y138,20191202,02,20200117,20200201,20230131
+0300043003          ,ŽR“c ‘¾˜Y139,20191202,02,20200117,20200201,20230131
+0300121438          ,ŽR“c ‘¾˜Y140,20191202,02,20200117,20200201,20230131
+0300121691          ,ŽR“c ‘¾˜Y141,20191202,02,20200117,20200201,20230131
+0800012651          ,ŽR“c ‘¾˜Y142,20191202,02,20200110,20200201,20230131
+0800013275          ,ŽR“c ‘¾˜Y143,20191202,02,20200110,20200201,20230131
+0800016592          ,ŽR“c ‘¾˜Y144,20191202,02,20200117,20200201,20230131
+0800034086          ,ŽR“c ‘¾˜Y145,20191202,02,20200110,20200201,20230131
+0800065240          ,ŽR“c ‘¾˜Y146,20191202,02,20200117,20200201,20230131
+0800107148          ,ŽR“c ‘¾˜Y147,20191202,01,20200110,20191202,20201231
+0800109981          ,ŽR“c ‘¾˜Y148,20191202,02,20200110,20200201,20210131
+0800115574          ,ŽR“c ‘¾˜Y149,20191202,01,20200110,20191202,20201231
+0800128552          ,ŽR“c ‘¾˜Y150,20191202,01,20200117,20191202,20201231
+0800137012          ,ŽR“c ‘¾˜Y151,20191202,02,20200117,20200201,20230131
+0800140684          ,ŽR“c ‘¾˜Y152,20191202,02,20200117,20200201,20210131
+0800142253          ,ŽR“c ‘¾˜Y153,20191202,02,20200124,20200201,20230131
+0800146089          ,ŽR“c ‘¾˜Y154,20191202,02,20200110,20200201,20230131
+0800156270          ,ŽR“c ‘¾˜Y155,20191202,02,20200124,20200201,20230131
+0800162920          ,ŽR“c ‘¾˜Y156,20191202,01,20200131,20191202,20201231
+0800189705          ,ŽR“c ‘¾˜Y157,20191202,05,20200117,20191202,20201231
+0800191068          ,ŽR“c ‘¾˜Y158,20191202,01,20200110,20191202,20201231
+0800197694          ,ŽR“c ‘¾˜Y159,20191202,02,20200110,20200201,20230131
+0800202850          ,ŽR“c ‘¾˜Y160,20191202,02,20200110,20200201,20230131
+0800215935          ,ŽR“c ‘¾˜Y161,20191202,02,20200110,20200201,20230131
+0800229650          ,ŽR“c ‘¾˜Y162,20191202,01,20200110,20191202,20201231
+0800229898          ,ŽR“c ‘¾˜Y163,20191202,05,20200110,20191202,20201231
+0800233801          ,ŽR“c ‘¾˜Y164,20191202,02,20200110,20200201,20230131
+0800257743          ,ŽR“c ‘¾˜Y165,20191202,01,20200110,20191202,20201231
+0800271495          ,ŽR“c ‘¾˜Y166,20191202,02,20200110,20200201,20230131
+0800277167          ,ŽR“c ‘¾˜Y167,20191202,02,20200117,20200201,20230131
+0800318122          ,ŽR“c ‘¾˜Y168,20191202,01,20200110,20191202,20201231
+0800328179          ,ŽR“c ‘¾˜Y169,20191202,01,20200131,,
+0800368944          ,ŽR“c ‘¾˜Y170,20191202,02,20200110,20200201,20230131
+0800370434          ,ŽR“c ‘¾˜Y171,20191202,02,20200110,20200201,20230131
+0800400643          ,ŽR“c ‘¾˜Y172,20191202,02,20200110,20200201,20230131
+0100012073          ,ŽR“c ‘¾˜Y173,20191203,02,20200131,20200201,20230131
+0200001176          ,ŽR“c ‘¾˜Y174,20191203,01,20200110,20191203,20200630
+0200005171          ,ŽR“c ‘¾˜Y175,20191203,02,20200110,20200201,20230131
+0200023820          ,ŽR“c ‘¾˜Y176,20191203,05,20200117,20191203,20201231
+0200029151          ,ŽR“c ‘¾˜Y177,20191203,02,20200124,20200201,20230131
+0200053281          ,ŽR“c ‘¾˜Y178,20191203,10,20200117,20191203,20201231
+0200063880          ,ŽR“c ‘¾˜Y179,20191203,02,20200124,20200201,20230131
+0200067134          ,ŽR“c ‘¾˜Y180,20191203,02,20200124,20200201,20220131
+0200091736          ,ŽR“c ‘¾˜Y181,20191203,02,20200110,20200201,20230131
+0200091833          ,ŽR“c ‘¾˜Y182,20191203,02,20200110,20200201,20230131
+0200098919          ,ŽR“c ‘¾˜Y183,20191203,02,20200124,20200201,20230131
+0200099877          ,ŽR“c ‘¾˜Y184,20191203,02,20200124,20200201,20230131
+0200100000          ,ŽR“c ‘¾˜Y185,20191203,02,20200110,20200201,20230131
+0200101979          ,ŽR“c ‘¾˜Y186,20191203,02,20200110,20200201,20230131
+0200102088          ,ŽR“c ‘¾˜Y187,20191203,01,20200117,20191203,20201231
+0300007368          ,ŽR“c ‘¾˜Y188,20191203,05,20200110,20191203,20201231
+0300044492          ,ŽR“c ‘¾˜Y189,20191203,02,20200124,20200201,20230131
+0300096484          ,ŽR“c ‘¾˜Y190,20191203,05,20200131,20191203,20201231
+0300097103          ,ŽR“c ‘¾˜Y191,20191203,02,20200124,20200201,20230131
+0300100066          ,ŽR“c ‘¾˜Y192,20191203,02,20200131,20200201,20230131
+0300101682          ,ŽR“c ‘¾˜Y193,20191203,02,20200124,20200201,20230131
+0300113745          ,ŽR“c ‘¾˜Y194,20191203,02,20200124,20200201,20230131
+0300120296          ,ŽR“c ‘¾˜Y195,20191203,02,20200117,20200201,20230131
+0300133673          ,ŽR“c ‘¾˜Y196,20191203,02,20200117,20200101,20201231
+0300135250          ,ŽR“c ‘¾˜Y197,20191203,02,20200124,20200201,20230131
+0300148395          ,ŽR“c ‘¾˜Y198,20191203,02,20200124,20200201,20230131
+0800003415          ,ŽR“c ‘¾˜Y199,20191203,01,20200110,20191203,20201231
+0800046831          ,ŽR“c ‘¾˜Y200,20191203,02,20200110,20200201,20230131
+0800057663          ,ŽR“c ‘¾˜Y201,20191203,02,20200124,20200201,20230131
+0800110726          ,ŽR“c ‘¾˜Y202,20191203,01,20200110,20191203,20201231
+0800131111          ,ŽR“c ‘¾˜Y203,20191203,02,20200110,20200201,20230131
+0800138744          ,ŽR“c ‘¾˜Y204,20191203,02,20200131,20200201,20230131
+0800185483          ,ŽR“c ‘¾˜Y205,20191203,01,20200117,20191203,20201231
+0800195276          ,ŽR“c ‘¾˜Y206,20191203,02,20200131,20200201,20230131
+0800207916          ,ŽR“c ‘¾˜Y207,20191203,02,20200110,20200101,20221231
+0800391520          ,ŽR“c ‘¾˜Y208,20191203,02,20200110,20200201,20230131
+0100000873          ,ŽR“c ‘¾˜Y209,20191204,02,20200117,20200201,20230131
+0100006197          ,ŽR“c ‘¾˜Y210,20191204,02,20200110,20200201,20230131
+0100014416          ,ŽR“c ‘¾˜Y211,20191204,02,20200117,20200201,20230131
+0100027313          ,ŽR“c ‘¾˜Y212,20191204,02,20200124,20200201,20230131
+0100027658          ,ŽR“c ‘¾˜Y213,20191204,02,20200117,20200201,20210131
+0100031370          ,ŽR“c ‘¾˜Y214,20191204,02,20200117,20200201,20210131
+0100042339          ,ŽR“c ‘¾˜Y215,20191204,02,20200124,20200201,20230131
+0100044102          ,ŽR“c ‘¾˜Y216,20191204,02,20200124,20200201,20230131
+0100052512          ,ŽR“c ‘¾˜Y217,20191204,10,20200110,20191204,20201231
+0100060671          ,ŽR“c ‘¾˜Y218,20191204,05,20200110,20191204,20201231
+0100066980          ,ŽR“c ‘¾˜Y219,20191204,02,20200117,20200201,20230131
+0100068443          ,ŽR“c ‘¾˜Y220,20191204,02,20200117,20200201,20230131
+0100073714          ,ŽR“c ‘¾˜Y221,20191204,02,20200110,20200201,20230131
+0100077310          ,ŽR“c ‘¾˜Y222,20191204,02,20200117,20200201,20230131
+0100087952          ,ŽR“c ‘¾˜Y223,20191204,02,20200124,20200201,20230131
+0100092190          ,ŽR“c ‘¾˜Y224,20191204,01,20200110,20191204,20201231
+0100092212          ,ŽR“c ‘¾˜Y225,20191204,01,20200110,20191204,20201231
+0100096153          ,ŽR“c ‘¾˜Y226,20191204,02,20200124,20200201,20230131
+0100101416          ,ŽR“c ‘¾˜Y227,20191204,02,20200124,20200201,20230131
+0100104920          ,ŽR“c ‘¾˜Y228,20191204,01,20200117,20191204,20201231
+0100109816          ,ŽR“c ‘¾˜Y229,20191204,02,20200124,20200201,20230131
+0100111152          ,ŽR“c ‘¾˜Y230,20191204,02,20200131,20200201,20230131
+0100111470          ,ŽR“c ‘¾˜Y231,20191204,02,20200124,20200201,20230131
+0100117037          ,ŽR“c ‘¾˜Y232,20191204,02,20200124,20200201,20230131
+0100121603          ,ŽR“c ‘¾˜Y233,20191204,02,20200124,20200201,20230131
+0100124041          ,ŽR“c ‘¾˜Y234,20191204,02,20200124,20200201,20230131
+0100124211          ,ŽR“c ‘¾˜Y235,20191204,01,20200110,20191204,20201231
+0100127024          ,ŽR“c ‘¾˜Y236,20191204,01,20200110,20191204,20201231
+0200006020          ,ŽR“c ‘¾˜Y237,20191204,02,20200117,20200201,20230131
+0200020235          ,ŽR“c ‘¾˜Y238,20191204,02,20200117,20200201,20230131
+0200026420          ,ŽR“c ‘¾˜Y239,20191204,10,20200110,20191204,20201231
+0200032683          ,ŽR“c ‘¾˜Y240,20191204,02,20200110,20200201,20230131
+0200045483          ,ŽR“c ‘¾˜Y241,20191204,02,20200124,20200201,20230131
+0200052013          ,ŽR“c ‘¾˜Y242,20191204,02,20200124,20200201,20230131
+0200065697          ,ŽR“c ‘¾˜Y243,20191204,02,20200124,20200201,20230131
+0200066537          ,ŽR“c ‘¾˜Y244,20191204,01,20200110,20191204,20201231
+0200087100          ,ŽR“c ‘¾˜Y245,20191204,02,20200124,20200201,20230131
+0200093151          ,ŽR“c ‘¾˜Y246,20191204,02,20200117,20200201,20230131
+0200099320          ,ŽR“c ‘¾˜Y247,20191204,02,20200124,20200201,20230131
+0200100085          ,ŽR“c ‘¾˜Y248,20191204,02,20200124,20200201,20230131
+0200100476          ,ŽR“c ‘¾˜Y249,20191204,02,20200124,20200201,20230131
+0200102177          ,ŽR“c ‘¾˜Y250,20191204,02,20200110,20200201,20220131
+0200104463          ,ŽR“c ‘¾˜Y251,20191204,02,20200110,20200201,20230131
+0200106121          ,ŽR“c ‘¾˜Y252,20191204,02,20200124,20200201,20230131
+0300001211          ,ŽR“c ‘¾˜Y253,20191204,02,20200117,20200201,20230131
+0300002870          ,ŽR“c ‘¾˜Y254,20191204,05,20200131,20191204,20200630
+0300009638          ,ŽR“c ‘¾˜Y255,20191204,02,20200124,20200201,20230131
+0300023134          ,ŽR“c ‘¾˜Y256,20191204,02,20200131,20200201,20230131
+0300029264          ,ŽR“c ‘¾˜Y257,20191204,02,20200131,20200201,20230131
+0300036848          ,ŽR“c ‘¾˜Y258,20191204,02,20200131,20200201,20230131
+0300038859          ,ŽR“c ‘¾˜Y259,20191204,02,20200131,20200201,20230131
+0300043461          ,ŽR“c ‘¾˜Y260,20191204,02,20200131,20200201,20230131
+0300050310          ,ŽR“c ‘¾˜Y261,20191204,02,20200124,20200201,20230131
+0300054838          ,ŽR“c ‘¾˜Y262,20191204,02,20200131,20200201,20230131
+0300062520          ,ŽR“c ‘¾˜Y263,20191204,02,20200124,20200201,20230131
+0300070779          ,ŽR“c ‘¾˜Y264,20191204,02,20200110,20200201,20230131
+0300074510          ,ŽR“c ‘¾˜Y265,20191204,01,20200117,20191204,20201231
+0300074910          ,ŽR“c ‘¾˜Y266,20191204,02,20200110,20200201,20230131
+0300075177          ,ŽR“c ‘¾˜Y267,20191204,02,20200117,20200201,20230131
+0300077994          ,ŽR“c ‘¾˜Y268,20191204,02,20200110,20200201,20230131
+0300078915          ,ŽR“c ‘¾˜Y269,20191204,02,20200117,20200201,20230131
+0300079768          ,ŽR“c ‘¾˜Y270,20191204,02,20200110,20200201,20230131
+0300081010          ,ŽR“c ‘¾˜Y271,20191204,02,20200124,20200201,20230131
+0300082726          ,ŽR“c ‘¾˜Y272,20191204,02,20200117,20200201,20210131
+0300088902          ,ŽR“c ‘¾˜Y273,20191204,02,20200110,20200201,20230131
+0300089771          ,ŽR“c ‘¾˜Y274,20191204,02,20200124,20200201,20230131
+0300096115          ,ŽR“c ‘¾˜Y275,20191204,02,20200124,20200201,20230131
+0300099580          ,ŽR“c ‘¾˜Y276,20191204,02,20200124,20200201,20230131
+0300107680          ,ŽR“c ‘¾˜Y277,20191204,02,20200131,20200201,20230131
+0300111300          ,ŽR“c ‘¾˜Y278,20191204,02,20200117,20200201,20230131
+0300115314          ,ŽR“c ‘¾˜Y279,20191204,05,20200117,20191204,20201231
+0300128726          ,ŽR“c ‘¾˜Y280,20191204,02,20200131,20200201,20230131
+0300130860          ,ŽR“c ‘¾˜Y281,20191204,02,20200117,20200201,20230131
+0300146112          ,ŽR“c ‘¾˜Y282,20191204,02,20200117,20200201,20230131
+0800010977          ,ŽR“c ‘¾˜Y283,20191204,02,20200117,20200201,20230131
+0800015650          ,ŽR“c ‘¾˜Y284,20191204,02,20200117,20200201,20230131
+0800027160          ,ŽR“c ‘¾˜Y285,20191204,02,20200117,20200201,20230131
+0800042283          ,ŽR“c ‘¾˜Y286,20191204,02,20200117,20200201,20230131
+0800048737          ,ŽR“c ‘¾˜Y287,20191204,02,20200110,20200201,20230131
+0800066107          ,ŽR“c ‘¾˜Y288,20191204,02,20200117,20200201,20230131
+0800070228          ,ŽR“c ‘¾˜Y289,20191204,02,20200117,20200201,20210131
+0800073898          ,ŽR“c ‘¾˜Y290,20191204,02,20200117,20200201,20230131
+0800080118          ,ŽR“c ‘¾˜Y291,20191204,02,20200117,20200201,20230131
+0800084571          ,ŽR“c ‘¾˜Y292,20191204,02,20200110,20200201,20230131
+0800087112          ,ŽR“c ‘¾˜Y293,20191204,02,20200117,20200201,20230131
+0800088534          ,ŽR“c ‘¾˜Y294,20191204,02,20200124,20200201,20230131
+0800092744          ,ŽR“c ‘¾˜Y295,20191204,02,20200110,20200201,20230131
+0800094968          ,ŽR“c ‘¾˜Y296,20191204,02,20200124,20200201,20230131
+0800095727          ,ŽR“c ‘¾˜Y297,20191204,01,20200117,20191204,20201231
+0800101930          ,ŽR“c ‘¾˜Y298,20191204,02,20200124,20200201,20230131
+0800102421          ,ŽR“c ‘¾˜Y299,20191204,02,20200117,20200101,20221231
+0800102774          ,ŽR“c ‘¾˜Y300,20191204,01,20200110,20191204,20201231
+0800115302          ,ŽR“c ‘¾˜Y301,20191204,02,20200124,20200201,20230131
+0800116074          ,ŽR“c ‘¾˜Y302,20191204,02,20200117,20200201,20230131
+0800137551          ,ŽR“c ‘¾˜Y303,20191204,02,20200124,20200201,20230131
+0800149371          ,ŽR“c ‘¾˜Y304,20191204,02,20200124,20200201,20230131
+0800159881          ,ŽR“c ‘¾˜Y305,20191204,02,20200117,20200201,20230131
+0800161444          ,ŽR“c ‘¾˜Y306,20191204,02,20200124,20200201,20230131
+0800169178          ,ŽR“c ‘¾˜Y307,20191204,02,20200124,20200201,20220131
+0800174040          ,ŽR“c ‘¾˜Y308,20191204,02,20200110,20200201,20230131
+0800185300          ,ŽR“c ‘¾˜Y309,20191204,02,20200124,20200201,20230131
+0800186153          ,ŽR“c ‘¾˜Y310,20191204,02,20200124,20200201,20230131
+0800186994          ,ŽR“c ‘¾˜Y311,20191204,02,20200124,20200201,20220131
+0800196132          ,ŽR“c ‘¾˜Y312,20191204,02,20200131,20200201,20230131
+0800207975          ,ŽR“c ‘¾˜Y313,20191204,02,20200110,20200201,20230131
+0800210232          ,ŽR“c ‘¾˜Y314,20191204,02,20200131,20200201,20230131
+0800228530          ,ŽR“c ‘¾˜Y315,20191204,02,20200124,20200201,20230131
+0800234409          ,ŽR“c ‘¾˜Y316,20191204,02,20200110,20200201,20210131
+0800242622          ,ŽR“c ‘¾˜Y317,20191204,02,20200117,20200201,20230131
+0800251389          ,ŽR“c ‘¾˜Y318,20191204,02,20200110,20200201,20220131
+0800251583          ,ŽR“c ‘¾˜Y319,20191204,02,20200117,20200201,20220131
+0800252474          ,ŽR“c ‘¾˜Y320,20191204,02,20200124,20200201,20210131
+0800277159          ,ŽR“c ‘¾˜Y321,20191204,02,20200117,20200201,20220131
+0800328659          ,ŽR“c ‘¾˜Y322,20191204,02,20200124,20200201,20230131
+0800357373          ,ŽR“c ‘¾˜Y323,20191204,02,20200131,20200201,20230131
+0800372623          ,ŽR“c ‘¾˜Y324,20191204,02,20200117,20200201,20230131
+0800401666          ,ŽR“c ‘¾˜Y325,20191204,02,20200117,20200201,20220131
+0800406005          ,ŽR“c ‘¾˜Y326,20191204,01,20200117,20191204,20201231
+0800416647          ,ŽR“c ‘¾˜Y327,20191204,01,20200110,20191204,20201231
+0800420024          ,ŽR“c ‘¾˜Y328,20191204,02,20200117,20200201,20230131
+0800432928          ,ŽR“c ‘¾˜Y329,20191204,01,20200110,20191204,20201231
+0800434777          ,ŽR“c ‘¾˜Y330,20191204,02,20200124,20200201,20230131
+0800482330          ,ŽR“c ‘¾˜Y331,20191204,02,20200110,20200201,20230131
+0100001250          ,ŽR“c ‘¾˜Y332,20191205,02,20200124,20200201,20230131
+0100002175          ,ŽR“c ‘¾˜Y333,20191205,02,20200124,20200201,20230131
+0100002868          ,ŽR“c ‘¾˜Y334,20191205,02,20200117,20200201,20220131
+0100008823          ,ŽR“c ‘¾˜Y335,20191205,02,20200124,20200201,20230131
+0100013657          ,ŽR“c ‘¾˜Y336,20191205,02,20200124,20200201,20230131
+0100016931          ,ŽR“c ‘¾˜Y337,20191205,02,20200124,20200201,20230131
+0100020610          ,ŽR“c ‘¾˜Y338,20191205,02,20200124,20200201,20230131
+0100022630          ,ŽR“c ‘¾˜Y339,20191205,02,20200124,20200201,20230131
+0100034182          ,ŽR“c ‘¾˜Y340,20191205,02,20200124,20200201,20230131
+0100043726          ,ŽR“c ‘¾˜Y341,20191205,02,20200124,20200201,20230131
+0100058677          ,ŽR“c ‘¾˜Y342,20191205,02,20200131,20200201,20230131
+0100063328          ,ŽR“c ‘¾˜Y343,20191205,02,20200124,20200201,20230131
+0100076497          ,ŽR“c ‘¾˜Y344,20191205,02,20200110,20200201,20230131
+0100084139          ,ŽR“c ‘¾˜Y345,20191205,02,20200131,20200201,20230131
+0100088223          ,ŽR“c ‘¾˜Y346,20191205,02,20200117,20200201,20230131
+0100111195          ,ŽR“c ‘¾˜Y347,20191205,02,20200124,20200201,20230131
+0100116251          ,ŽR“c ‘¾˜Y348,20191205,02,20200124,20200201,20230131
+0100122944          ,ŽR“c ‘¾˜Y349,20191205,02,20200124,20200201,20230131
+0100123673          ,ŽR“c ‘¾˜Y350,20191205,02,20200124,20200201,20230131
+0200005457          ,ŽR“c ‘¾˜Y351,20191205,02,20200124,20200201,20220131
+0200013166          ,ŽR“c ‘¾˜Y352,20191205,02,20200124,20200201,20230131
+0200013662          ,ŽR“c ‘¾˜Y353,20191205,02,20200124,20200201,20230131
+0200016815          ,ŽR“c ‘¾˜Y354,20191205,02,20200124,20200201,20230131
+0200043570          ,ŽR“c ‘¾˜Y355,20191205,02,20200124,20200201,20230131
+0200068939          ,ŽR“c ‘¾˜Y356,20191205,02,20200117,20200201,20230131
+0200072839          ,ŽR“c ‘¾˜Y357,20191205,02,20200117,20200201,20230131
+0200076273          ,ŽR“c ‘¾˜Y358,20191205,02,20200124,20200201,20230131
+0200082893          ,ŽR“c ‘¾˜Y359,20191205,02,20200124,20200201,20230131
+0200087470          ,ŽR“c ‘¾˜Y360,20191205,02,20200124,20200201,20210131
+0200090195          ,ŽR“c ‘¾˜Y361,20191205,02,20200117,20200201,20230131
+0300002102          ,ŽR“c ‘¾˜Y362,20191205,02,20200124,20200201,20230131
+0300007139          ,ŽR“c ‘¾˜Y363,20191205,02,20200131,20200201,20210131
+0300023053          ,ŽR“c ‘¾˜Y364,20191205,02,20200131,20200201,20230131
+0300045626          ,ŽR“c ‘¾˜Y365,20191205,02,20200131,20200201,20230131
+0300047432          ,ŽR“c ‘¾˜Y366,20191205,02,20200124,20200201,20230131
+0300049672          ,ŽR“c ‘¾˜Y367,20191205,02,20200124,20200201,20230131
+0300052584          ,ŽR“c ‘¾˜Y368,20191205,02,20200131,20200201,20230131
+0300064264          ,ŽR“c ‘¾˜Y369,20191205,02,20200117,20200201,20230131
+0300067409          ,ŽR“c ‘¾˜Y370,20191205,02,20200131,20200201,20230131
+0300078877          ,ŽR“c ‘¾˜Y371,20191205,02,20200117,20200201,20230131
+0300098630          ,ŽR“c ‘¾˜Y372,20191205,02,20200131,20200201,20230131
+0300112510          ,ŽR“c ‘¾˜Y373,20191205,02,20200124,20200201,20230131
+0300113575          ,ŽR“c ‘¾˜Y374,20191205,02,20200124,20200201,20230131
+0300124305          ,ŽR“c ‘¾˜Y375,20191205,02,20200131,20200201,20230131
+0300125697          ,ŽR“c ‘¾˜Y376,20191205,02,20200124,20200201,20230131
+0300125875          ,ŽR“c ‘¾˜Y377,20191205,02,20200124,20200201,20230131
+0300128378          ,ŽR“c ‘¾˜Y378,20191205,02,20200131,20200101,20221231
+0300132227          ,ŽR“c ‘¾˜Y379,20191205,02,20200124,20200201,20230131
+0300133320          ,ŽR“c ‘¾˜Y380,20191205,02,20200131,20200201,20230131
+0300141722          ,ŽR“c ‘¾˜Y381,20191205,02,20200124,20200201,20230131
+0300147623          ,ŽR“c ‘¾˜Y382,20191205,02,20200124,20200201,20230131
+0300148166          ,ŽR“c ‘¾˜Y383,20191205,02,20200124,20200201,20230131
+0800008131          ,ŽR“c ‘¾˜Y384,20191205,02,20200117,20200201,20220131
+0800018323          ,ŽR“c ‘¾˜Y385,20191205,02,20200117,20200201,20230131
+0800057051          ,ŽR“c ‘¾˜Y386,20191205,02,20200124,20200201,20230131
+0800066450          ,ŽR“c ‘¾˜Y387,20191205,02,20200117,20200201,20230131
+0800070457          ,ŽR“c ‘¾˜Y388,20191205,02,20200124,20200201,20220131
+0800079969          ,ŽR“c ‘¾˜Y389,20191205,02,20200117,20200201,20230131
+0800083737          ,ŽR“c ‘¾˜Y390,20191205,05,20200117,20191205,20201231
+0800085802          ,ŽR“c ‘¾˜Y391,20191205,02,20200131,20200201,20230131
+0800092752          ,ŽR“c ‘¾˜Y392,20191205,02,20200124,20200201,20230131
+0800093635          ,ŽR“c ‘¾˜Y393,20191205,02,20200117,20200201,20230131
+0800098122          ,ŽR“c ‘¾˜Y394,20191205,02,20200131,20200201,20230131
+0800112869          ,ŽR“c ‘¾˜Y395,20191205,02,20200131,20200201,20230131
+0800115086          ,ŽR“c ‘¾˜Y396,20191205,02,20200124,20200201,20230131
+0800120608          ,ŽR“c ‘¾˜Y397,20191205,02,20200131,20200201,20230131
+0800129940          ,ŽR“c ‘¾˜Y398,20191205,02,20200117,20200201,20230131
+0800152178          ,ŽR“c ‘¾˜Y399,20191205,02,20200131,20200201,20230131
+0800155649          ,ŽR“c ‘¾˜Y400,20191205,02,20200124,20200201,20230131
+0800160790          ,ŽR“c ‘¾˜Y401,20191205,01,20200131,20191205,20201231
+0800166934          ,ŽR“c ‘¾˜Y402,20191205,02,20200124,20200201,20230131
+0800167000          ,ŽR“c ‘¾˜Y403,20191205,02,20200124,20200201,20230131
+0800169836          ,ŽR“c ‘¾˜Y404,20191205,02,20200131,20200201,20230131
+0800172365          ,ŽR“c ‘¾˜Y405,20191205,05,20200117,20191205,20201231
+0800190436          ,ŽR“c ‘¾˜Y406,20191205,02,20200124,20200201,20230131
+0800202523          ,ŽR“c ‘¾˜Y407,20191205,02,20200124,20200201,20230131
+0800214564          ,ŽR“c ‘¾˜Y408,20191205,02,20200131,20200101,20221231
+0800250188          ,ŽR“c ‘¾˜Y409,20191205,02,20200124,20200201,20230131
+0800252083          ,ŽR“c ‘¾˜Y410,20191205,02,20200124,20200201,20230131
+0800255660          ,ŽR“c ‘¾˜Y411,20191205,02,20200124,20200201,20230131
+0800267994          ,ŽR“c ‘¾˜Y412,20191205,02,20200124,20200201,20230131
+0800349443          ,ŽR“c ‘¾˜Y413,20191205,02,20200124,20200201,20230131
+0800393876          ,ŽR“c ‘¾˜Y414,20191205,02,20200117,20200201,20220131
+0800438438          ,ŽR“c ‘¾˜Y415,20191205,01,20200110,20191205,20201231
+0800493641          ,ŽR“c ‘¾˜Y416,20191205,09,20200124,20191205,20200630
+0100024160          ,ŽR“c ‘¾˜Y417,20191206,01,20200117,20191206,20201231
+0100038196          ,ŽR“c ‘¾˜Y418,20191206,02,20200124,20200201,20230131
+0100042762          ,ŽR“c ‘¾˜Y419,20191206,02,20200124,20200201,20230131
+0100059592          ,ŽR“c ‘¾˜Y420,20191206,02,20200124,20200201,20230131
+0100060817          ,ŽR“c ‘¾˜Y421,20191206,02,20200131,20200201,20230131
+0100061830          ,ŽR“c ‘¾˜Y422,20191206,02,20200117,20200201,20230131
+0100079780          ,ŽR“c ‘¾˜Y423,20191206,01,20200110,20191206,20201231
+0100083027          ,ŽR“c ‘¾˜Y424,20191206,02,20200124,20200201,20230131
+0100084171          ,ŽR“c ‘¾˜Y425,20191206,02,20200124,20200201,20220131
+0100098687          ,ŽR“c ‘¾˜Y426,20191206,02,20200131,20200201,20230131
+0100108321          ,ŽR“c ‘¾˜Y427,20191206,02,20200124,20200201,20230131
+0100110180          ,ŽR“c ‘¾˜Y428,20191206,02,20200124,20200201,20230131
+0100111870          ,ŽR“c ‘¾˜Y429,20191206,02,20200124,20200201,20230131
+0100114887          ,ŽR“c ‘¾˜Y430,20191206,02,20200131,20200201,20230131
+0100120933          ,ŽR“c ‘¾˜Y431,20191206,02,20200124,20200201,20230131
+0100123959          ,ŽR“c ‘¾˜Y432,20191206,02,20200131,20200201,20230131
+0200003829          ,ŽR“c ‘¾˜Y433,20191206,02,20200117,20200201,20230131
+0200008782          ,ŽR“c ‘¾˜Y434,20191206,02,20200131,20200201,20230131
+0200009410          ,ŽR“c ‘¾˜Y435,20191206,02,20200124,20200201,20220131
+0200016963          ,ŽR“c ‘¾˜Y436,20191206,02,20200124,20200201,20230131
+0200030346          ,ŽR“c ‘¾˜Y437,20191206,02,20200124,20200201,20230131
+0200039343          ,ŽR“c ‘¾˜Y438,20191206,02,20200124,20200201,20230131
+0200070364          ,ŽR“c ‘¾˜Y439,20191206,01,20200110,20191206,20201231
+0200072170          ,ŽR“c ‘¾˜Y440,20191206,02,20200124,20200201,20220131
+0200082800          ,ŽR“c ‘¾˜Y441,20191206,05,20200110,20191206,20201231
+0200082834          ,ŽR“c ‘¾˜Y442,20191206,02,20200124,20200201,20230131
+0200083024          ,ŽR“c ‘¾˜Y443,20191206,02,20200124,20200201,20230131
+0200085086          ,ŽR“c ‘¾˜Y444,20191206,02,20200117,20200201,20230131
+0200106288          ,ŽR“c ‘¾˜Y445,20191206,02,20200124,20200201,20230131
+0300001238          ,ŽR“c ‘¾˜Y446,20191206,02,20200124,20200201,20200731
+0300005209          ,ŽR“c ‘¾˜Y447,20191206,02,20200131,20200201,20230131
+0300028470          ,ŽR“c ‘¾˜Y448,20191206,02,20200131,20200201,20230131
+0300037496          ,ŽR“c ‘¾˜Y449,20191206,02,20200124,20200201,20230131
+0300037585          ,ŽR“c ‘¾˜Y450,20191206,02,20200124,20200201,20220131
+0300047610          ,ŽR“c ‘¾˜Y451,20191206,02,20200124,20200201,20230131
+0300047874          ,ŽR“c ‘¾˜Y452,20191206,02,20200131,20200201,20230131
+0300074430          ,ŽR“c ‘¾˜Y453,20191206,02,20200131,20200201,20230131
+0300075355          ,ŽR“c ‘¾˜Y454,20191206,02,20200124,20200201,20230131
+0300084753          ,ŽR“c ‘¾˜Y455,20191206,02,20200124,20200201,20230131
+0300098894          ,ŽR“c ‘¾˜Y456,20191206,05,20200117,20191206,20201231
+0300129374          ,ŽR“c ‘¾˜Y457,20191206,02,20200131,20200201,20230131
+0300140785          ,ŽR“c ‘¾˜Y458,20191206,02,20200124,20200201,20230131
+0300144217          ,ŽR“c ‘¾˜Y459,20191206,02,20200131,20200201,20230131
+0800004365          ,ŽR“c ‘¾˜Y460,20191206,02,20200124,20200201,20230131
+0800005345          ,ŽR“c ‘¾˜Y461,20191206,02,20200117,20200201,20210131
+0800011949          ,ŽR“c ‘¾˜Y462,20191206,02,20200124,20200201,20230131
+0800015502          ,ŽR“c ‘¾˜Y463,20191206,02,20200124,20200201,20230131
+0800017327          ,ŽR“c ‘¾˜Y464,20191206,02,20200124,20200201,20230131
+0800023939          ,ŽR“c ‘¾˜Y465,20191206,02,20200124,20200201,20230131
+0800026580          ,ŽR“c ‘¾˜Y466,20191206,02,20200131,20200201,20230131
+0800027225          ,ŽR“c ‘¾˜Y467,20191206,02,20200131,20200201,20230131
+0800029120          ,ŽR“c ‘¾˜Y468,20191206,02,20200117,20200201,20230131
+0800035724          ,ŽR“c ‘¾˜Y469,20191206,02,20200131,20200201,20230131
+0800042666          ,ŽR“c ‘¾˜Y470,20191206,02,20200124,20200201,20230131
+0800043433          ,ŽR“c ‘¾˜Y471,20191206,02,20200124,20200201,20230131
+0800056578          ,ŽR“c ‘¾˜Y472,20191206,01,20200117,20191206,20201231
+0800078962          ,ŽR“c ‘¾˜Y473,20191206,02,20200131,20200201,20230131
+0800079276          ,ŽR“c ‘¾˜Y474,20191206,02,20200124,20200201,20230131
+0800082684          ,ŽR“c ‘¾˜Y475,20191206,02,20200124,20200201,20230131
+0800084768          ,ŽR“c ‘¾˜Y476,20191206,01,20200110,20191206,20200630
+0800093007          ,ŽR“c ‘¾˜Y477,20191206,02,20200131,20200201,20230131
+0800096596          ,ŽR“c ‘¾˜Y478,20191206,02,20200124,20200201,20230131
+0800101697          ,ŽR“c ‘¾˜Y479,20191206,02,20200124,20200201,20230131
+0800126908          ,ŽR“c ‘¾˜Y480,20191206,02,20200131,20200201,20230131
+0800140307          ,ŽR“c ‘¾˜Y481,20191206,02,20200124,20200201,20210131
+0800148383          ,ŽR“c ‘¾˜Y482,20191206,02,20200124,20200201,20220131
+0800154456          ,ŽR“c ‘¾˜Y483,20191206,02,20200124,20200201,20230131
+0800157072          ,ŽR“c ‘¾˜Y484,20191206,02,20200131,20200201,20230131
+0800168031          ,ŽR“c ‘¾˜Y485,20191206,02,20200124,20200201,20230131
+0800173930          ,ŽR“c ‘¾˜Y486,20191206,02,20200124,20200201,20220131
+0800174821          ,ŽR“c ‘¾˜Y487,20191206,02,20200131,20200201,20230131
+0800203317          ,ŽR“c ‘¾˜Y488,20191206,01,20200110,20191206,20201231
+0800208122          ,ŽR“c ‘¾˜Y489,20191206,02,20200117,20200201,20230131
+0800213428          ,ŽR“c ‘¾˜Y490,20191206,02,20200131,20200201,20230131
+0800218233          ,ŽR“c ‘¾˜Y491,20191206,02,20200131,20200201,20230131
+0800225124          ,ŽR“c ‘¾˜Y492,20191206,02,20200110,20200201,20230131
+0800236088          ,ŽR“c ‘¾˜Y493,20191206,02,20200124,20200201,20230131
+0800240824          ,ŽR“c ‘¾˜Y494,20191206,02,20200124,20200201,20230131
+0800244196          ,ŽR“c ‘¾˜Y495,20191206,02,20200124,20200201,20230131
+0800309700          ,ŽR“c ‘¾˜Y496,20191206,02,20200117,20200201,20220131
+0800333520          ,ŽR“c ‘¾˜Y497,20191206,02,20200110,20200201,20220131
+0800413273          ,ŽR“c ‘¾˜Y498,20191206,01,20200110,20191206,20201231
+0800459770          ,ŽR“c ‘¾˜Y499,20191206,02,20200124,20200201,20230131
+0800468191          ,ŽR“c ‘¾˜Y500,20191206,02,20200124,20200201,20230131
+0800491940          ,ŽR“c ‘¾˜Y501,20191206,01,20200110,20191206,20201231
+0300065473          ,ŽR“c ‘¾˜Y502,20191207,02,20200124,20200201,20220131
+0800082501          ,ŽR“c ‘¾˜Y503,20191207,02,20200124,20200201,20220131
+0100008033          ,ŽR“c ‘¾˜Y504,20191209,02,20200124,20200201,20230131
+0100010399          ,ŽR“c ‘¾˜Y505,20191209,01,20200110,20191209,20201231
+0100028972          ,ŽR“c ‘¾˜Y506,20191209,02,20200124,20200201,20230131
+0100029324          ,ŽR“c ‘¾˜Y507,20191209,02,20200117,20200201,20230131
+0100032937          ,ŽR“c ‘¾˜Y508,20191209,05,20200117,20191209,20201231
+0100039940          ,ŽR“c ‘¾˜Y509,20191209,02,20200124,20200201,20230131
+0100044382          ,ŽR“c ‘¾˜Y510,20191209,02,20200124,20200201,20230131
+0100047250          ,ŽR“c ‘¾˜Y511,20191209,02,20200124,20200201,20230131
+0100048078          ,ŽR“c ‘¾˜Y512,20191209,02,20200124,20200201,20230131
+0100050250          ,ŽR“c ‘¾˜Y513,20191209,02,20200131,20200201,20230131
+0100053934          ,ŽR“c ‘¾˜Y514,20191209,01,20200124,20191209,20201231
+0100069890          ,ŽR“c ‘¾˜Y515,20191209,02,20200117,20200201,20230131
+0100077159          ,ŽR“c ‘¾˜Y516,20191209,02,20200124,20200201,20230131
+0100090848          ,ŽR“c ‘¾˜Y517,20191209,01,20200117,20191209,20201231
+0100093685          ,ŽR“c ‘¾˜Y518,20191209,02,20200131,20200201,20230131
+0100106221          ,ŽR“c ‘¾˜Y519,20191209,02,20200124,20200201,20230131
+0200022076          ,ŽR“c ‘¾˜Y520,20191209,02,20200124,20200201,20220131
+0200030915          ,ŽR“c ‘¾˜Y521,20191209,02,20200131,20200201,20230131
+0200049241          ,ŽR“c ‘¾˜Y522,20191209,02,20200117,20200201,20230131
+0200057503          ,ŽR“c ‘¾˜Y523,20191209,02,20200124,20200201,20230131
+0200066111          ,ŽR“c ‘¾˜Y524,20191209,02,20200124,20200201,20230131
+0200066944          ,ŽR“c ‘¾˜Y525,20191209,02,20200124,20200201,20220131
+0200077059          ,ŽR“c ‘¾˜Y526,20191209,02,20200117,20200201,20230131
+0200093453          ,ŽR“c ‘¾˜Y527,20191209,02,20200124,20200201,20230131
+0200101642          ,ŽR“c ‘¾˜Y528,20191209,02,20200124,20200201,20230131
+0300000444          ,ŽR“c ‘¾˜Y529,20191209,02,20200131,20200201,20230131
+0300018610          ,ŽR“c ‘¾˜Y530,20191209,02,20200124,20200201,20220131
+0300044867          ,ŽR“c ‘¾˜Y531,20191209,02,20200131,20200201,20230131
+0300045340          ,ŽR“c ‘¾˜Y532,20191209,01,20200124,20191209,20201231
+0300063322          ,ŽR“c ‘¾˜Y533,20191209,01,20200117,20191209,20201231
+0300106587          ,ŽR“c ‘¾˜Y534,20191209,02,20200124,20200201,20220131
+0300117481          ,ŽR“c ‘¾˜Y535,20191209,02,20200124,20200201,20210131
+0800017190          ,ŽR“c ‘¾˜Y536,20191209,01,20200117,20191209,20201231
+0800023319          ,ŽR“c ‘¾˜Y537,20191209,02,20200124,20200201,20210131
+0800025940          ,ŽR“c ‘¾˜Y538,20191209,10,20200117,20191209,20201231
+0800029414          ,ŽR“c ‘¾˜Y539,20191209,02,20200131,20200201,20230131
+0800080061          ,ŽR“c ‘¾˜Y540,20191209,01,20200131,20191209,20201231
+0800080959          ,ŽR“c ‘¾˜Y541,20191209,02,20200124,20200201,20220131
+0800085764          ,ŽR“c ‘¾˜Y542,20191209,05,20200117,20191209,20201231
+0800095042          ,ŽR“c ‘¾˜Y543,20191209,01,20200117,20191209,20201231
+0800100658          ,ŽR“c ‘¾˜Y544,20191209,02,20200131,20200201,20230131
+0800111099          ,ŽR“c ‘¾˜Y545,20191209,05,20200110,20191209,20201231
+0800113407          ,ŽR“c ‘¾˜Y546,20191209,01,20200117,20191209,20201231
+0800114233          ,ŽR“c ‘¾˜Y547,20191209,02,20200124,20200201,20230131
+0800116430          ,ŽR“c ‘¾˜Y548,20191209,02,20200131,20200201,20230131
+0800134331          ,ŽR“c ‘¾˜Y549,20191209,02,20200131,20200201,20230131
+0800156084          ,ŽR“c ‘¾˜Y550,20191209,01,20200124,20191209,20201231
+0800159784          ,ŽR“c ‘¾˜Y551,20191209,01,20200124,20191209,20201231
+0800178096          ,ŽR“c ‘¾˜Y552,20191209,02,20200124,20200201,20230131
+0800186617          ,ŽR“c ‘¾˜Y553,20191209,02,20200124,20200201,20230131
+0800244790          ,ŽR“c ‘¾˜Y554,20191209,02,20200131,20200201,20230131
+0800244811          ,ŽR“c ‘¾˜Y555,20191209,02,20200124,20200201,20230131
+0800264855          ,ŽR“c ‘¾˜Y556,20191209,02,20200117,20200101,20211231
+0800384338          ,ŽR“c ‘¾˜Y557,20191209,02,20200131,20200201,20230131
+0800398886          ,ŽR“c ‘¾˜Y558,20191209,02,20200124,20200201,20220131
+0800466156          ,ŽR“c ‘¾˜Y559,20191209,02,20200131,20200201,20230131
+0800484197          ,ŽR“c ‘¾˜Y560,20191209,02,20200131,20200201,20210131
+0100000407          ,ŽR“c ‘¾˜Y561,20191210,01,20200117,20191210,20201231
+0100036797          ,ŽR“c ‘¾˜Y562,20191210,05,20200124,20191210,20201231
+0100054310          ,ŽR“c ‘¾˜Y563,20191210,02,20200131,20200201,20230131
+0100120569          ,ŽR“c ‘¾˜Y564,20191210,02,20200124,20200201,20210131
+0100120585          ,ŽR“c ‘¾˜Y565,20191210,02,20200131,20200201,20230131
+0200024028          ,ŽR“c ‘¾˜Y566,20191210,02,20200131,20200201,20230131
+0200031660          ,ŽR“c ‘¾˜Y567,20191210,02,20200124,20200201,20230131
+0200066022          ,ŽR“c ‘¾˜Y568,20191210,01,20200124,20191210,20201231
+0200101715          ,ŽR“c ‘¾˜Y569,20191210,02,20200131,20200201,20230131
+0300052215          ,ŽR“c ‘¾˜Y570,20191210,02,20200131,20200201,20230131
+0300059724          ,ŽR“c ‘¾˜Y571,20191210,01,20200117,20191210,20201231
+0300080391          ,ŽR“c ‘¾˜Y572,20191210,05,20200131,20191210,20201231
+0300120920          ,ŽR“c ‘¾˜Y573,20191210,02,20200131,20200201,20230131
+0300133703          ,ŽR“c ‘¾˜Y574,20191210,02,20200131,20200201,20230131
+0300141820          ,ŽR“c ‘¾˜Y575,20191210,02,20200131,20200201,20230131
+0800002192          ,ŽR“c ‘¾˜Y576,20191210,02,20200131,20200201,20230131
+0800077265          ,ŽR“c ‘¾˜Y577,20191210,02,20200124,20200201,20230131
+0800080193          ,ŽR“c ‘¾˜Y578,20191210,02,20200131,20200201,20230131
+0800088305          ,ŽR“c ‘¾˜Y579,20191210,05,20200131,20191210,20201231
+0800097967          ,ŽR“c ‘¾˜Y580,20191210,02,20200124,20200201,20230131
+0800112010          ,ŽR“c ‘¾˜Y581,20191210,02,20200131,20200201,20220131
+0800119901          ,ŽR“c ‘¾˜Y582,20191210,02,20200131,20200201,20230131
+0800141427          ,ŽR“c ‘¾˜Y583,20191210,01,20200131,20191210,20200630
+0800161070          ,ŽR“c ‘¾˜Y584,20191210,02,20200131,20200201,20220131
+0800175674          ,ŽR“c ‘¾˜Y585,20191210,02,20200124,20200201,20230131
+0800291534          ,ŽR“c ‘¾˜Y586,20191210,02,20200131,20200201,20230131
+0800307066          ,ŽR“c ‘¾˜Y587,20191210,02,20200131,20200201,20230131
+0800358019          ,ŽR“c ‘¾˜Y588,20191210,02,20200124,20200201,20230131
+0800358868          ,ŽR“c ‘¾˜Y589,20191210,01,20200117,20191210,20201231
+0800361184          ,ŽR“c ‘¾˜Y590,20191210,01,20200117,20191210,20201231
+0800410096          ,ŽR“c ‘¾˜Y591,20191210,02,20200131,20200201,20230131
+0800420040          ,ŽR“c ‘¾˜Y592,20191210,02,20200131,20200201,20220131
+0100058502          ,ŽR“c ‘¾˜Y593,20191211,02,20200131,20200201,20220131
+0300003850          ,ŽR“c ‘¾˜Y594,20191211,01,20200131,20191211,20201231
+0300022685          ,ŽR“c ‘¾˜Y595,20191211,02,20200131,20200201,20230131
+0300141129          ,ŽR“c ‘¾˜Y596,20191211,05,20200131,20191211,20201231
+0800001480          ,ŽR“c ‘¾˜Y597,20191211,02,20200131,20200201,20230131
+0800093805          ,ŽR“c ‘¾˜Y598,20191211,02,20200131,20200201,20220131
+0800107474          ,ŽR“c ‘¾˜Y599,20191211,02,20200131,20200201,20230131
+0800155223          ,ŽR“c ‘¾˜Y600,20191211,01,20200117,20191211,20201231
+0800155240          ,ŽR“c ‘¾˜Y601,20191211,02,20200131,20200201,20230131
+0800224489          ,ŽR“c ‘¾˜Y602,20191211,02,20200117,20200101,20221231
+0800230128          ,ŽR“c ‘¾˜Y603,20191211,01,20200131,20191211,20201231
+0800365082          ,ŽR“c ‘¾˜Y604,20191211,01,20200117,20191211,20201231
+0800384087          ,ŽR“c ‘¾˜Y605,20191211,01,20200117,20191211,20201231
+0800420032          ,ŽR“c ‘¾˜Y606,20191211,02,20200131,20200201,20230131
+0800435315          ,ŽR“c ‘¾˜Y607,20191211,01,20200117,20191211,20201231
+0100026406          ,ŽR“c ‘¾˜Y608,20191212,02,20200131,20200201,20230131
+0100065266          ,ŽR“c ‘¾˜Y609,20191212,05,20200117,20191212,20201231
+0100075040          ,ŽR“c ‘¾˜Y610,20191212,01,20200117,20191212,20201231
+0100090201          ,ŽR“c ‘¾˜Y611,20191212,01,20200117,20191212,20201231
+0800020360          ,ŽR“c ‘¾˜Y612,20191212,02,20200131,20200201,20230131
+0800100313          ,ŽR“c ‘¾˜Y613,20191212,02,20200131,20200201,20220131
+0800110076          ,ŽR“c ‘¾˜Y614,20191212,02,20200131,20200201,20230131
+0800114098          ,ŽR“c ‘¾˜Y615,20191212,02,20200131,20200201,20230131
+0800123666          ,ŽR“c ‘¾˜Y616,20191212,01,20200117,20191212,20201231
+0800125367          ,ŽR“c ‘¾˜Y617,20191212,05,20200131,20191212,20201231
+0800142130          ,ŽR“c ‘¾˜Y618,20191212,01,20200117,20191212,20201231
+0800164575          ,ŽR“c ‘¾˜Y619,20191212,02,20200131,20200201,20230131
+0800343577          ,ŽR“c ‘¾˜Y620,20191212,02,20200131,20200201,20230131
+0100004682          ,ŽR“c ‘¾˜Y621,20191213,02,20200131,20200201,20230131
+0100072521          ,ŽR“c ‘¾˜Y622,20191213,02,20200131,20200201,20230131
+0100078686          ,ŽR“c ‘¾˜Y623,20191213,01,20200117,20191213,20201231
+0300070540          ,ŽR“c ‘¾˜Y624,20191213,02,20200131,20200201,20220131
+0800012317          ,ŽR“c ‘¾˜Y625,20191213,01,20200117,20191213,20201231
+0800012465          ,ŽR“c ‘¾˜Y626,20191213,02,20200131,20200201,20230131
+0800029287          ,ŽR“c ‘¾˜Y627,20191213,02,20200131,20200201,20230131
+0800042771          ,ŽR“c ‘¾˜Y628,20191213,02,20200131,20200201,20230131
+0800049636          ,ŽR“c ‘¾˜Y629,20191213,02,20200131,20200201,20220131
+0800064058          ,ŽR“c ‘¾˜Y630,20191213,02,20200131,20200201,20220131
+0800064724          ,ŽR“c ‘¾˜Y631,20191213,02,20200131,20200201,20230131
+0800090156          ,ŽR“c ‘¾˜Y632,20191213,10,20200131,20191213,20200630
+0800111986          ,ŽR“c ‘¾˜Y633,20191213,01,20200131,20191213,20201231
+0800125812          ,ŽR“c ‘¾˜Y634,20191213,02,20200131,20200201,20230131
+0800140218          ,ŽR“c ‘¾˜Y635,20191213,02,20200131,20200201,20220131
+0800170338          ,ŽR“c ‘¾˜Y636,20191213,02,20200131,20200201,20220131
+0800100623          ,ŽR“c ‘¾˜Y637,20191215,02,20200131,20200201,20220131
+0100030730          ,ŽR“c ‘¾˜Y638,20191216,10,20200117,20191216,20201231
+0100055759          ,ŽR“c ‘¾˜Y639,20191216,02,20200131,20200201,20230131
+0100116057          ,ŽR“c ‘¾˜Y640,20191216,01,20200117,20191216,20201231
+0200032535          ,ŽR“c ‘¾˜Y641,20191216,02,20200131,20200201,20220131
+0200071220          ,ŽR“c ‘¾˜Y642,20191216,01,20200131,20191216,20201231
+0300044140          ,ŽR“c ‘¾˜Y643,20191216,02,20200131,20200201,20230131
+0300071600          ,ŽR“c ‘¾˜Y644,20191216,01,20200131,,
+0300071619          ,ŽR“c ‘¾˜Y645,20191216,01,20200131,20191216,20201231
+0300105971          ,ŽR“c ‘¾˜Y646,20191216,01,20200131,20191216,20201231
+0300119026          ,ŽR“c ‘¾˜Y647,20191216,02,20200131,20200201,20230131
+0800058961          ,ŽR“c ‘¾˜Y648,20191216,02,20200131,20200201,20220131
+0800059020          ,ŽR“c ‘¾˜Y649,20191216,10,20200117,20191216,20201231
+0800104971          ,ŽR“c ‘¾˜Y650,20191216,01,20200131,20191216,20200630
+0800106001          ,ŽR“c ‘¾˜Y651,20191216,02,20200131,20200101,20221231
+0800124808          ,ŽR“c ‘¾˜Y652,20191216,05,20200131,20191216,20200630
+0800198518          ,ŽR“c ‘¾˜Y653,20191216,10,20200131,20191216,20201231
+0800415152          ,ŽR“c ‘¾˜Y654,20191216,01,20200117,20191216,20201231
+0100050226          ,ŽR“c ‘¾˜Y655,20191217,02,20200131,20200201,20230131
+0100050838          ,ŽR“c ‘¾˜Y656,20191217,01,20200131,20191217,20201231
+0100109301          ,ŽR“c ‘¾˜Y657,20191217,02,20200131,20200201,20220131
+0200009452          ,ŽR“c ‘¾˜Y658,20191217,01,20200131,20191217,20201231
+0200045530          ,ŽR“c ‘¾˜Y659,20191217,01,20200117,20191217,20201231
+0200059042          ,ŽR“c ‘¾˜Y660,20191217,10,20200131,20191217,20201231
+0200088263          ,ŽR“c ‘¾˜Y661,20191217,05,20200131,20191217,20201231
+0200094972          ,ŽR“c ‘¾˜Y662,20191217,01,20200131,20191217,20201231
+0200097734          ,ŽR“c ‘¾˜Y663,20191217,10,20200131,20191217,20201231
+0300141870          ,ŽR“c ‘¾˜Y664,20191217,02,20200131,20200201,20220131
+0800003318          ,ŽR“c ‘¾˜Y665,20191217,10,20200131,20191217,20201231
+0800075718          ,ŽR“c ‘¾˜Y666,20191217,02,20200131,20200201,20230131
+0800101522          ,ŽR“c ‘¾˜Y667,20191217,10,20200117,20191217,20201231
+0800139228          ,ŽR“c ‘¾˜Y668,20191217,10,20200131,20191217,20201231
+0800404207          ,ŽR“c ‘¾˜Y669,20191217,01,20200131,20191217,20201231
+0800491975          ,ŽR“c ‘¾˜Y670,20191217,01,20200131,20191217,20201231
+0200041054          ,ŽR“c ‘¾˜Y671,20191218,01,20200131,20191218,20201231
+0200044070          ,ŽR“c ‘¾˜Y672,20191218,01,20200131,20191218,20201231
+0300037836          ,ŽR“c ‘¾˜Y673,20191218,02,20200131,20200201,20230131
+0300125859          ,ŽR“c ‘¾˜Y674,20191218,02,20200131,20200201,20230131
+0300143911          ,ŽR“c ‘¾˜Y675,20191218,01,20200131,20191218,20201231
+0800012724          ,ŽR“c ‘¾˜Y676,20191218,01,20200131,20191218,20201231
+0800060605          ,ŽR“c ‘¾˜Y677,20191218,02,20200131,20200201,20230131
+0800102545          ,ŽR“c ‘¾˜Y678,20191218,05,20200131,20191218,20201231
+0800117500          ,ŽR“c ‘¾˜Y679,20191218,01,20200131,20191218,20201231
+0100031493          ,ŽR“c ‘¾˜Y680,20191219,02,20200131,20200201,20230131
+0100101157          ,ŽR“c ‘¾˜Y681,20191219,02,20200131,20200201,20230131
+0200028732          ,ŽR“c ‘¾˜Y682,20191219,01,20200131,20191219,20201231
+0300029370          ,ŽR“c ‘¾˜Y683,20191219,01,20200131,20191219,20201231
+0300042651          ,ŽR“c ‘¾˜Y684,20191219,01,20200131,20191219,20201231
+0300058132          ,ŽR“c ‘¾˜Y685,20191219,05,20200131,20191219,20201231
+0300068510          ,ŽR“c ‘¾˜Y686,20191219,01,20200131,20191219,20201231
+0300098312          ,ŽR“c ‘¾˜Y687,20191219,05,20200131,20191219,20201231
+0800091187          ,ŽR“c ‘¾˜Y688,20191219,01,20200131,20191219,20201231
+0800137411          ,ŽR“c ‘¾˜Y689,20191219,02,20200131,20200201,20230131
+0800167922          ,ŽR“c ‘¾˜Y690,20191219,02,20200131,20200201,20220131
+0800338883          ,ŽR“c ‘¾˜Y691,20191219,02,20200131,20200201,20230131
+0800491983          ,ŽR“c ‘¾˜Y692,20191219,01,20200131,20191219,20201231
+0100004860          ,ŽR“c ‘¾˜Y693,20191220,02,20200131,20200201,20220131
+0100014378          ,ŽR“c ‘¾˜Y694,20191220,01,20200131,20191220,20201231
+0200099192          ,ŽR“c ‘¾˜Y695,20191220,01,20200131,20191220,20201231
+0300051650          ,ŽR“c ‘¾˜Y696,20191220,05,20200131,20191220,20201231
+0300132448          ,ŽR“c ‘¾˜Y697,20191220,05,20200131,20191220,20201231
+0300143458          ,ŽR“c ‘¾˜Y698,20191220,01,20200131,20191220,20201231
+0800007348          ,ŽR“c ‘¾˜Y699,20191220,10,20200131,20191220,20201231
+0800116090          ,ŽR“c ‘¾˜Y700,20191220,02,20200131,20200201,20220131
+0800224942          ,ŽR“c ‘¾˜Y701,20191220,01,20200131,20191220,20201231
+0800371554          ,ŽR“c ‘¾˜Y702,20191220,05,20200131,20191220,20201231
+0800410495          ,ŽR“c ‘¾˜Y703,20191220,02,20200131,20200201,20220131
+0100074842          ,ŽR“c ‘¾˜Y704,20191223,01,20200131,20191223,20201231
+0800057833          ,ŽR“c ‘¾˜Y705,20191223,10,20200131,20191223,20201231
+0800073162          ,ŽR“c ‘¾˜Y706,20191223,01,20200131,20191223,20201231
+0100118670          ,ŽR“c ‘¾˜Y707,20191224,02,20200131,20200201,20230131
+0100127474          ,ŽR“c ‘¾˜Y708,20191225,02,20200131,20200201,20230131
+0800493609          ,ŽR“c ‘¾˜Y709,20200106,03,20200115,20200106,20210131
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/porori.json	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,1 @@
+{"From":"20200113","To":"20200117"}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/src/main.cpp	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,34 @@
+// Filename   : main.cpp
+// Last Change: 2020-02-12 … 08:38:12.
+//
+#include "main.h"
+#include "porori.h"
+
+IMPLEMENT_APP(MyApp)
+
+IMPLEMENT_CLASS( MyApp, wxApp )
+
+MyApp::MyApp()
+{
+}
+MyApp::~MyApp()
+{
+}
+
+bool MyApp::OnInit()
+{
+    if ( !wxApp::OnInit() ) return false;
+
+    long style = wxDEFAULT_FRAME_STYLE;
+    style = style & ~(wxMAXIMIZE_BOX);
+    PororiFrame *mainframe = new PororiFrame(NULL, wxID_ANY, wxT("Porori"), wxDefaultPosition, wxSize(340,80), style);
+    mainframe->Show(true);
+
+    return true;
+}
+
+int MyApp::OnExit()
+{
+    return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/src/porori.cpp	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,65 @@
+/* Filename   : porori.cpp
+   Last Change: 2020-02-12 æ°´ 15:53:15.
+                     by Takayuki Mutoh
+*/
+#include "porori.h"
+#include "sample.xpm"
+
+PororiFrame::PororiFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) 
+    : wxFrame(parent, id, title, pos, size, style)
+{
+    this->SetIcon(wxIcon(m_icon));
+	this->SetSizeHints(wxDefaultSize, wxDefaultSize);
+	this->SetBackgroundColour(wxColour(110, 200, 100));
+
+	wxBoxSizer* bSizerTop = new wxBoxSizer(wxHORIZONTAL);
+
+	m_datePickerFrom = new wxDatePickerCtrl(this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN|wxDP_SHOWCENTURY);
+	bSizerTop->Add(m_datePickerFrom, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+	m_staticText = new wxStaticText(this, wxID_ANY, wxT("~"), wxDefaultPosition, wxDefaultSize, 0);
+	bSizerTop->Add(m_staticText, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5);
+
+	m_datePickerTo = new wxDatePickerCtrl(this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN|wxDP_SHOWCENTURY);
+	bSizerTop->Add(m_datePickerTo, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+	m_button = new wxButton( this, ID_PROCESS, wxT("実行"), wxDefaultPosition, wxDefaultSize, 0);
+	bSizerTop->Add(m_button, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
+
+	this->SetSizer(bSizerTop);
+	this->Layout();
+
+	this->Centre(wxBOTH);
+
+	// Initiaize
+	for (wxDateTime t = m_datePickerFrom->GetValue(); ; t -= wxTimeSpan::Day()) {
+		if (t.GetWeekDay() == 1){
+			m_datePickerFrom->SetValue(t);
+			break;
+		}
+	}
+
+	// Connect Events
+	m_button->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PororiFrame::OnClick), NULL, this);
+}
+
+PororiFrame::~PororiFrame()
+{
+	// Disconnect Events
+	m_button->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PororiFrame::OnClick), NULL, this);
+}
+
+void PororiFrame::OnClick(wxCommandEvent& WXUNUSED(event))
+{
+	wxTextFile file(m_json);
+	if (file.Create() || file.Open()) {
+		file.Clear();
+		wxDateTime from = m_datePickerFrom->GetValue();
+		wxDateTime to = m_datePickerTo->GetValue();
+		wxString json = wxString::Format(wxT("{\"From\":\"%s\",\"To\":\"%s\"}"), from.Format(wxT("%Y%m%d")), to.Format(wxT("%Y%m%d")));
+		file.AddLine(json);
+		file.Write();
+	}
+	this->Close();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/src2/porori.go	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,154 @@
+package main
+
+import (
+	"encoding/csv"
+	"encoding/json"
+	"fmt"
+	"io/ioutil"
+	"log"
+	"os"
+	"sort"
+	"strings"
+	"time"
+
+	"golang.org/x/text/encoding/japanese"
+	"golang.org/x/text/transform"
+)
+
+const jsonfile = "porori.json"
+
+type Sinsei struct {
+	No string
+	Name string
+	Ymd string
+	Kbn string
+	Ccn string
+	Bgn string
+	End string
+	Term string
+}
+
+func (s Sinsei) String() string {
+	return strings.Join([]string{s.No, s.Name, s.Ymd, s.Kbn, s.Bgn, s.End, s.Term, s.Ccn}, ",")
+}
+
+func (s Sinsei) TransDate (ymd string) (time.Time, string) {
+	zero := time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC)
+	if !strings.HasPrefix(ymd, "20") {
+		return zero, ""	// it's dummy
+	}
+	t, _ := time.Parse("20060102", ymd)
+	return t, t.Format(" 2006-01-02")
+}
+
+func (s Sinsei) CountMonth(bgn, end time.Time) int {
+	if bgn.IsZero() {
+		return 0
+	}
+
+	m := (end.Year() * 12 + int(end.Month())) - (bgn.Year() * 12 + int(bgn.Month()))
+	if bgn.Day() == 1 {
+		m++
+	}
+	return m
+}
+
+func (s *Sinsei) ChangeExpression() {
+	s.No = "=\"" + strings.TrimSpace(s.No) + "\""
+
+	switch s.Kbn {
+	case "01":
+		s.Kbn = "æ–°è¦"
+	case "02":
+		s.Kbn = "æ›´æ–°"
+	case "10":
+		s.Kbn = "支介"
+	case "05":
+		s.Kbn = "区変"
+	case "03":
+		s.Kbn = "転入"
+	case "09":
+		s.Kbn = "証交"
+	}
+	s.Kbn, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), s.Kbn)
+
+	var bgn, end time.Time
+	_, s.Ymd = s.TransDate(s.Ymd)
+	_, s.Ccn = s.TransDate(s.Ccn)
+	bgn, s.Bgn = s.TransDate(s.Bgn)
+	end, s.End = s.TransDate(s.End)
+
+	s.Term = fmt.Sprintf("%d", s.CountMonth(bgn, end))
+}
+
+func main() {
+
+	if len(os.Args) != 2 {
+		fmt.Fprint(os.Stderr, "bat input.")
+		os.Exit(1)
+	}
+
+	// Filter Setting
+	type YF struct {
+		From string
+		To string
+	}
+	var yf YF
+
+	content, err := ioutil.ReadFile(jsonfile)
+	if err != nil {
+		log.Fatal(err)
+	}
+	if err := json.Unmarshal(content, &yf); err != nil {
+		log.Fatal(err)
+	}
+
+	// Read CSV
+	content, err = ioutil.ReadFile(os.Args[1])
+	if err != nil {
+		log.Fatal(err)
+	}
+
+	r := csv.NewReader(strings.NewReader(string(content)))
+
+	records, err := r.ReadAll()
+	if err != nil {
+		log.Fatal(err)
+	}
+
+	// Main Proccess
+	var sinsei []Sinsei
+
+	for _, record := range records {
+		if record[4] < yf.From || record[4] > yf.To {
+			continue
+		}
+
+		ss := Sinsei{
+			No: record[0],
+			Name: record[1],
+			Ymd: record[2],
+			Kbn: record[3],
+			Ccn: record[4],
+			Bgn: record[5],
+			End: record[6],
+		}
+		ss.ChangeExpression()
+
+		sinsei = append(sinsei, ss)
+	}
+
+	sort.Slice(sinsei, func(i, j int) bool {
+		return sinsei[i].Ymd < sinsei[j].Ymd
+	})
+
+	// Output
+	header := strings.Join([]string{"被ä¿ç•ª", "æ°å", "申請日", "区分", "é–‹å§‹æ—¥", "終了日", "期間", "審査会"}, ",")
+	header, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), header)
+	fmt.Println(header)
+
+	for _, s := range sinsei {
+		fmt.Println(s)
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/kaigo/Porori/src2/porori.pl	Wed Mar 04 23:46:59 2020 +0900
@@ -0,0 +1,22 @@
+use Time::Piece;
+use Time::Seconds;
+
+my $today = localtime->ymd;
+$today =~ s/-//g;
+
+print join ',' => "”í•Û”Ô", "Ž–¼", "\¿“ú", "‹æ•ª", "ŠJŽn“ú", "I—¹“ú", "ŠúŠÔ", "\n";
+while (<>) {
+	chomp;
+	my ($h, $n, $s, $kbn, $d, $bgn, $end) = split /,/;
+	next if $d ne $today;
+	$kbn = "V‹K" if $kbn eq '01';
+	$kbn = "XV" if $kbn eq '02';
+	$kbn = "Žx‰î" if $kbn eq '10';
+	$kbn = "‹æ•Ï" if $kbn eq '05';
+	my $tbgn = Time::Piece->strptime($bgn, "%Y%m%d");
+	my $tend = Time::Piece->strptime($end, "%Y%m%d");
+	my $diff = $tend - $tbgn;
+	print join ',' => $h, $n, $s, $kbn, $bgn, $end, int $diff->months();
+	print "\n";
+}
+