From bd76f94433505156c287d8b85942aa8b62b6aaea Mon Sep 17 00:00:00 2001 From: kaznishi Date: Mon, 25 Jun 2018 08:30:08 +0900 Subject: [PATCH 01/13] =?UTF-8?q?kadai2=E3=83=87=E3=82=A3=E3=83=AC?= =?UTF-8?q?=E3=82=AF=E3=83=88=E3=83=AA=E3=81=ABkadai2-1,kadai2-2=E3=82=92?= =?UTF-8?q?=E4=BD=9C=E6=88=90=E3=80=82kadai2-2=E3=81=AFkadai1=E3=81=AE?= =?UTF-8?q?=E6=94=B9=E5=96=84=E3=81=AA=E3=81=AE=E3=81=A7=E3=80=81=E3=81=B2?= =?UTF-8?q?=E3=81=A8=E3=81=BE=E3=81=9A=E3=81=9D=E3=81=AE=E3=81=BE=E3=81=BE?= =?UTF-8?q?=E3=82=B3=E3=83=94=E3=83=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kadai2/kadai2-1/kadai2-1.md | 0 kadai2/kadai2-2/.gitkeep | 0 kadai2/kadai2-2/README.md | 35 ++ kadai2/kadai2-2/doc/imageconverter.html | 468 ++++++++++++++++++ kadai2/kadai2-2/imageConvert.go | 31 ++ .../imageconverter/command_validator.go | 12 + kadai2/kadai2-2/imageconverter/converter.go | 52 ++ kadai2/kadai2-2/imageconverter/facade.go | 19 + kadai2/kadai2-2/imageconverter/file_info.go | 18 + kadai2/kadai2-2/imageconverter/file_path.go | 4 + kadai2/kadai2-2/imageconverter/format.go | 19 + kadai2/kadai2-2/imageconverter/searcher.go | 29 ++ kadai2/kadai2-2/sample_dir1/Octocat.jpeg | Bin 0 -> 51695 bytes kadai2/kadai2-2/sample_dir1/dummy_fuga.md | 0 kadai2/kadai2-2/sample_dir1/dummy_hoge.txt | 0 .../sample_dir1/sample_dir2/Octocat.jpg | Bin 0 -> 51695 bytes .../sample_dir1/sample_dir2/dummy_fuga.md | 0 .../sample_dir1/sample_dir2/dummy_hoge.txt | 0 .../sample_dir2/sample_dir3/Octocat.png | Bin 0 -> 2131769 bytes .../sample_dir2/sample_dir3/dummy_fuga.md | 0 .../sample_dir2/sample_dir3/dummy_hoge.txt | 0 21 files changed, 687 insertions(+) create mode 100644 kadai2/kadai2-1/kadai2-1.md create mode 100644 kadai2/kadai2-2/.gitkeep create mode 100644 kadai2/kadai2-2/README.md create mode 100644 kadai2/kadai2-2/doc/imageconverter.html create mode 100644 kadai2/kadai2-2/imageConvert.go create mode 100644 kadai2/kadai2-2/imageconverter/command_validator.go create mode 100644 kadai2/kadai2-2/imageconverter/converter.go create mode 100644 kadai2/kadai2-2/imageconverter/facade.go create mode 100644 kadai2/kadai2-2/imageconverter/file_info.go create mode 100644 kadai2/kadai2-2/imageconverter/file_path.go create mode 100644 kadai2/kadai2-2/imageconverter/format.go create mode 100644 kadai2/kadai2-2/imageconverter/searcher.go create mode 100644 kadai2/kadai2-2/sample_dir1/Octocat.jpeg create mode 100644 kadai2/kadai2-2/sample_dir1/dummy_fuga.md create mode 100644 kadai2/kadai2-2/sample_dir1/dummy_hoge.txt create mode 100644 kadai2/kadai2-2/sample_dir1/sample_dir2/Octocat.jpg create mode 100644 kadai2/kadai2-2/sample_dir1/sample_dir2/dummy_fuga.md create mode 100644 kadai2/kadai2-2/sample_dir1/sample_dir2/dummy_hoge.txt create mode 100644 kadai2/kadai2-2/sample_dir1/sample_dir2/sample_dir3/Octocat.png create mode 100644 kadai2/kadai2-2/sample_dir1/sample_dir2/sample_dir3/dummy_fuga.md create mode 100644 kadai2/kadai2-2/sample_dir1/sample_dir2/sample_dir3/dummy_hoge.txt diff --git a/kadai2/kadai2-1/kadai2-1.md b/kadai2/kadai2-1/kadai2-1.md new file mode 100644 index 0000000..e69de29 diff --git a/kadai2/kadai2-2/.gitkeep b/kadai2/kadai2-2/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/kadai2/kadai2-2/README.md b/kadai2/kadai2-2/README.md new file mode 100644 index 0000000..d37512f --- /dev/null +++ b/kadai2/kadai2-2/README.md @@ -0,0 +1,35 @@ +## 使い方 + +### build + +``` +go build imageConvert.go +``` + +### 画像変換 + +フォーマット指定なし(JPG => PNG) + +``` +./imageConnvert sample_dir1 +``` + +フォーマット指定あり + +``` +./imageConvert -i png -o jpg sample_dir1 +``` + +### 補足 + +- 対応している画像の形式はjpgとpngのみになります。gifは対応していません。 +- jpg => png変換の際には.jpegのファイルも一緒に変換されます。 + +### 以下課題をやっての所感とか + +- 関数の引数としてファイルのパスとか画像のフォーマットとかを指定する場面が出てくる。その際、引数の型がstringなのは微妙すぎると思い、FilePathとかFormatなどの型を定義したが、全体として実装がまわりくどくなってしまったのがちょっと悔しい感。特にFileInfoとかFormatとかが入り乱れてconverter.goのコードはかなり読みづらくなってしまっている。 +- imageパッケージを使うとjpgやpngだけでなくgifも扱えそうな感じだったが、どうも私の環境では壊れたgifファイルしか生成できず、その原因がまだ追えていないので実装には組み込まなかったのは心残り。余力があれば追う。 +- mainパッケージのコードを極力薄くできたのは良かった。 +- VSCodeのGo拡張を入れて開発しているのだが、コメントを書いていないことで怒られるのはGoの文化を感じた。 +- 最初にGOROOTの外のディレクトリで開発していたために、パッケージ分離をやろうとした際にエディタが「パッケージ認識できへんで」って怒り出して戸惑った。開発はGOROOTの中でやるのがいいんですかね。Go使いの方々はどうやって開発しているんだろう。 +- GoDoc生成のhtmlファイルはあのままではCSS等が読み込まれていない。どうやって使うものなのだろうか。 \ No newline at end of file diff --git a/kadai2/kadai2-2/doc/imageconverter.html b/kadai2/kadai2-2/doc/imageconverter.html new file mode 100644 index 0000000..d888f50 --- /dev/null +++ b/kadai2/kadai2-2/doc/imageconverter.html @@ -0,0 +1,468 @@ + + + + + + + +
+
+
import "./imageconverter"
+
+
+
Overview
+
Index
+ + +
+
+ +
+ +
+

Overview ▾

+ + +
+
+ +
+ + +
+ + + + + + + + + +

type CommandValidator + +

+

+CommandValidator mainで取得したoptionの検査器 +

+ +
type CommandValidator struct{}
+ + + + + + + + + + + + + +

func (*CommandValidator) ExtValidate + +

+
func (cv *CommandValidator) ExtValidate(f Format) bool
+

+ExtValidate 対象フォーマットならばtrue +

+ + + + + + + + +

type Converter + +

+

+Converter 画像ファイル変換器 +

+ +
type Converter struct{}
+ + + + + + + + + + + + + +

func (*Converter) Run + +

+
func (c *Converter) Run(
+    f FileInfo,
+    inputFormat Format,
+    outputFormat Format)
+

+Run 画像を変換する。対象フォーマットではないファイルは無視する。 +

+ + + + + + + + +

type Facade + +

+

+Facade mainからの命令窓口 +

+ +
type Facade struct{}
+ + + + + + + + + + + + + +

func (*Facade) Run + +

+
func (f *Facade) Run(
+    targetPath FilePath,
+    inputFormat Format,
+    outputFormat Format)
+

+Run Searcherを使ってファイル群を走査、Converterを使ってファイル群を変換処理にかける +

+ + + + + + + + +

type FileInfo + +

+

+FileInfo FilePathを基に、付属情報を取得できる関数が定義された型 +

+ +
type FileInfo struct {
+    Path FilePath
+}
+ + + + + + + + + + + + + +

func (*FileInfo) Ext + +

+
func (fi *FileInfo) Ext() string
+

+Ext .付き拡張子の文字列を返す +

+ + + + + + +

func (*FileInfo) Format + +

+
func (fi *FileInfo) Format() Format
+

+Format .なし拡張子の文字列を返す +

+ + + + + + + + +

type FilePath + +

+

+FilePath ファイルパスを表す型 +

+ +
type FilePath string
+ + + + + + + + + + + + + + + +

type Format + +

+

+Format ファイルのフォーマットを表す型 +

+ +
type Format string
+ + + + + + + + + + + + + +

func (*Format) Ext + +

+
func (f *Format) Ext() string
+

+Ext 拡張子を取得する関数 +

+ + + + + + +

func (*Format) NormalizedFormat + +

+
func (f *Format) NormalizedFormat() Format
+

+NormalizedFormat 本ツール内で扱いやすいフォーマットに変換する。(jpeg => jpg をやりたいがための実装) +

+ + + + + + + + +

type Searcher + +

+

+Searcher 対象ディレクトリファイルの検索器 +

+ +
type Searcher struct{}
+ + + + + + + + + + + + + +

func (*Searcher) Run + +

+
func (s *Searcher) Run(target FileInfo) []FileInfo
+

+Run 対象ディレクトリを再帰的に走査 +

+ + + + + + + + + + + + + + diff --git a/kadai2/kadai2-2/imageConvert.go b/kadai2/kadai2-2/imageConvert.go new file mode 100644 index 0000000..31d1a60 --- /dev/null +++ b/kadai2/kadai2-2/imageConvert.go @@ -0,0 +1,31 @@ +package main + +import ( + "flag" + + "github.com/gopherdojo/dojo2/kadai1/imageconverter" +) + +var ( + inExtOpt = flag.String("i", "jpg", "変換対象の画像ファイルの種類") + outExtOpt = flag.String("o", "png", "変換後の画像ファイルの種類") +) + +func main() { + flag.Parse() + if len(flag.Args()) == 0 { + panic("対象パスが指定されていません") + } + targetPath := imageconverter.FilePath(flag.Args()[0]) + + inputFormat := imageconverter.Format(*inExtOpt) + outputFormat := imageconverter.Format(*outExtOpt) + + var icCommandValidator imageconverter.CommandValidator + if (!icCommandValidator.ExtValidate(inputFormat)) || (!icCommandValidator.ExtValidate(outputFormat)) { + panic("画像ファイルフォーマットが対応していません") + } + + var icFacade imageconverter.Facade + icFacade.Run(targetPath, inputFormat, outputFormat) +} diff --git a/kadai2/kadai2-2/imageconverter/command_validator.go b/kadai2/kadai2-2/imageconverter/command_validator.go new file mode 100644 index 0000000..c7c66bc --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/command_validator.go @@ -0,0 +1,12 @@ +package imageconverter + +// CommandValidator mainで取得したoptionの検査器 +type CommandValidator struct{} + +// ExtValidate 対象フォーマットならばtrue +func (cv *CommandValidator) ExtValidate(f Format) bool { + if f == Format("jpg") || f == Format("png") { + return true + } + return false +} diff --git a/kadai2/kadai2-2/imageconverter/converter.go b/kadai2/kadai2-2/imageconverter/converter.go new file mode 100644 index 0000000..ed2313a --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/converter.go @@ -0,0 +1,52 @@ +package imageconverter + +import ( + "image" + "image/jpeg" + "image/png" + "os" + "regexp" +) + +// Converter 画像ファイル変換器 +type Converter struct{} + +// Run 画像を変換する。対象フォーマットではないファイルは無視する。 +func (c *Converter) Run( + f FileInfo, + inputFormat Format, + outputFormat Format) { + + fFormat := f.Format() + + // 画像を変換する処理 + if fFormat.NormalizedFormat() == inputFormat { + newPath := regexp.MustCompile(`\`+f.Ext()+`$`).ReplaceAllString(string(f.Path), outputFormat.Ext()) + println(string(f.Path) + " => " + newPath) + + orgFile, err := os.Open(string(f.Path)) + if err != nil { + panic(err) + } + defer orgFile.Close() + + img, _, err := image.Decode(orgFile) + if err != nil { + panic(err) + } + + newFile, err := os.Create(newPath) + if err != nil { + panic(err) + } + defer newFile.Close() + + switch string(outputFormat) { + case "png": + png.Encode(newFile, img) + case "jpg": + jpeg.Encode(newFile, img, nil) + } + } + +} diff --git a/kadai2/kadai2-2/imageconverter/facade.go b/kadai2/kadai2-2/imageconverter/facade.go new file mode 100644 index 0000000..12bc266 --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/facade.go @@ -0,0 +1,19 @@ +package imageconverter + +// Facade mainからの命令窓口 +type Facade struct{} + +// Run Searcherを使ってファイル群を走査、Converterを使ってファイル群を変換処理にかける +func (f *Facade) Run( + targetPath FilePath, + inputFormat Format, + outputFormat Format) { + + var searcher Searcher + var converter Converter + + fileInfoList := searcher.Run(FileInfo{Path: targetPath}) + for _, fileInfo := range fileInfoList { + converter.Run(fileInfo, inputFormat, outputFormat) + } +} diff --git a/kadai2/kadai2-2/imageconverter/file_info.go b/kadai2/kadai2-2/imageconverter/file_info.go new file mode 100644 index 0000000..8fc3731 --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/file_info.go @@ -0,0 +1,18 @@ +package imageconverter + +import "path/filepath" + +// FileInfo FilePathを基に、付属情報を取得できる関数が定義された型 +type FileInfo struct { + Path FilePath +} + +// Ext .付き拡張子の文字列を返す +func (fi *FileInfo) Ext() string { + return filepath.Ext(string(fi.Path)) +} + +// Format .なし拡張子の文字列を返す +func (fi *FileInfo) Format() Format { + return Format(fi.Ext()[1:]) +} diff --git a/kadai2/kadai2-2/imageconverter/file_path.go b/kadai2/kadai2-2/imageconverter/file_path.go new file mode 100644 index 0000000..c54df74 --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/file_path.go @@ -0,0 +1,4 @@ +package imageconverter + +// FilePath ファイルパスを表す型 +type FilePath string diff --git a/kadai2/kadai2-2/imageconverter/format.go b/kadai2/kadai2-2/imageconverter/format.go new file mode 100644 index 0000000..ebe8e38 --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/format.go @@ -0,0 +1,19 @@ +package imageconverter + +// Format ファイルのフォーマットを表す型 +type Format string + +// Ext 拡張子を取得する関数 +func (f *Format) Ext() string { + return `.` + string(*f) +} + +// NormalizedFormat 本ツール内で扱いやすいフォーマットに変換する。(jpeg => jpg をやりたいがための実装) +func (f *Format) NormalizedFormat() Format { + switch string(*f) { + case "jpeg": + return Format("jpg") + default: + return *f + } +} diff --git a/kadai2/kadai2-2/imageconverter/searcher.go b/kadai2/kadai2-2/imageconverter/searcher.go new file mode 100644 index 0000000..fabdebc --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/searcher.go @@ -0,0 +1,29 @@ +package imageconverter + +import ( + "io/ioutil" + "path/filepath" +) + +// Searcher 対象ディレクトリファイルの検索器 +type Searcher struct{} + +// Run 対象ディレクトリを再帰的に走査 +func (s *Searcher) Run(target FileInfo) []FileInfo { + return s.recursiveSearch(target) +} + +func (s *Searcher) recursiveSearch(target FileInfo) []FileInfo { + var fis []FileInfo + files, _ := ioutil.ReadDir(string(target.Path)) + for _, file := range files { + filePath := FilePath(filepath.Join(string(target.Path), file.Name())) + fi := FileInfo{Path: filePath} + if file.IsDir() { + fis = append(fis, s.recursiveSearch(fi)...) + } else { + fis = append(fis, fi) + } + } + return fis +} diff --git a/kadai2/kadai2-2/sample_dir1/Octocat.jpeg b/kadai2/kadai2-2/sample_dir1/Octocat.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..ff4ca31ffdcfe88971c67b52636e4eb6f865ae61 GIT binary patch literal 51695 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%0A!{7MI;1E2pKa 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 K7iGOKgZ~Fhn!alQ literal 0 HcmV?d00001 diff --git a/kadai2/kadai2-2/sample_dir1/dummy_fuga.md b/kadai2/kadai2-2/sample_dir1/dummy_fuga.md new file mode 100644 index 0000000..e69de29 diff --git a/kadai2/kadai2-2/sample_dir1/dummy_hoge.txt b/kadai2/kadai2-2/sample_dir1/dummy_hoge.txt new file mode 100644 index 0000000..e69de29 diff --git a/kadai2/kadai2-2/sample_dir1/sample_dir2/Octocat.jpg b/kadai2/kadai2-2/sample_dir1/sample_dir2/Octocat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ff4ca31ffdcfe88971c67b52636e4eb6f865ae61 GIT binary patch literal 51695 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%0A!{7MI;1E2pKa zu*WyNo5!IaIABG9xS1Pe=BVA10nk^W zOQ1bFH${Oxr%!&}FRkC7WKH>;343ZDRo;A;_a=PT2jX*OP0{9YL2urwdBXHyaX0dt zP4LW1HtuOEZKZsXw||;@*va?$`=0Jn2EC^gu4GBiR%Pi(r)#7qpJi?CcDZ=0TGV2# zIttyNFB&QZsxWfhj=fH6&pm|IHt;2!yaLuB$8w#^6ilIEzhj(g;WSvhcfp zplM>n&3+m#Q^}O+X0=thh0l*mBW|60n+@89oD;eCun-FM3(|XuX4%}3AFlC%kT*ZHdl{$4`F6o++BvdKUmRI$opP8XhmEz0y$ z*`{OD^bc32KpFMcm4 zmQGx$PL#2^i$hPP1HYn=S&=g#cqYF941%!^!pq_4UE&eIcaqYyCmIuV$Y!00mh0G^ zOKmu-gSh>eul8+QicT1t#|wQPqKL=qehYe`g+)r?=eF>5p4*HzmSOETr==-|md`c= zZ5WoQ5oT{v@(M?9zaM_j)Hmc|kn|wOY;!}a9+)|p!|25j>wK4@Qx_i$E<^Ga&-vjg9$OCkm* zf2rrm&nOBI~qP~BwDTY^wn%Uw{d8#VrlgMez~=$VWqw}VQ^$w zI=bIXbR(k7=K9Z|gedu?s2KGKu%>*3?L&yZ1tGbdQ(md_O92N}v45~HQGTDBrGr&{ z;_4Ydn{UgYu7RS7WytVM3yR|b%F^vzIstEY6TD@L(+M7jOAyz|tS!}s^6qG363c|% zgs80W+)Jt#kErH3rQ(-{j+b!?ge>1d0=6YSmjpyr!$Y8?&Zw3du}=hak6edX25noB ziK(3X1i$eEGOGq}oShFyh%E5VDu+1Ow?)1lTYy$JfD1#ETI@+SCyk)e?;LYM`w+`i z!c9fX6ZN;z_1xd8_(C0lt6Iqsh!`+~tq2KM8R7qdCp;)H$hQuF%K2LK>Al6lB3(Wa!|5qL?U-t(!GOTE1f#&mVxl-)vo zH=VY_-#5{$ta`$jUFS!OS%oJyQsa=zed9}!RaTLrMV72scxWu-b6xqKwAV#h*?;)u z5B)PkmWf4(jECFOia)!Q+GB!47T0g9j2Yo}sX(rg8n^i~noTsD$KE8<>-2fZ zKdqbWA8|o0x~EyXWyjlm;pBWBWb0eer(ksi*b`h>cI8GJ(B}3FS$HYzXc5@(mx}ERVcq{~emW zMCCIS73J>cSyH!9l7){|iWkUID}0yFxJM^-SJd@2BDAa5aX=)L?pa+%qqadV&Z zO{|K5z-;0mesQz*RoBe^fpMXe+&oR&?{s|MZ5`8SR^wnKRM3?A7UOFb{n+9ffwuUk!k0b0LKHj zy7M;oA3cU@Rd$=&dFG6)C^Ty_#|E0@7s?G~1w;++Ob4cL*EdZQ@^?)M!INO?dVQ7_ ziY+!PG-q0_jP^D02~+R4It^b+pPpl`OsW31VIy|i$QXYF5P#n-OXSSZ?~U?RgvV2j2!%#=VLIDBOcWqy#l87>T)AEl%4uK~ z6p%?8`377*phH8FL_BuL`d1~Yl$pPottVr?($xNo zj`^1^s|Tt~<9CH}IBOVyqd1I()da0`R2N>hnU4&WDjzMYj`4PeQ;1Zm#Gw3}Bf!nV zb|VJ-$EH+{G=c`ZZ*qL5@OXDeO>2 zJMTlW5}#X`@ja&5=Wg9Tv|Ig(nk)I^98mopl`W;(=QD#NK4&@6h1EFV2r!gIuHnV$K|V!84d3|lt!>YFg4y`gpwUnUR5 zl1lX4mD<58{J#|Dr)UcK0{U2fJmj$3*t&-|Y~$f#DAkImKi@7<$y=CwLU~l=PQ(21 z4L+1&v>4Z5n$K0zS<0oH6jMTzq1UmaXq(%Sz=*c|EIaF(EL)T!ZO3sq&)+jA)h?{V z=%a7;R+R$Q8$LIakrU33CxmwyUfPn61R=21B_`4hBEE2})8)}~f$LU|#B;4hdZr}q zShlm_piAUtyrONCMKkl~t=Y*9!6qusnc$M59S|cNC^nci8DMlNi_z^d0Kl)9=C7e^ zeJXltlS!DbWmyl8L*Y9z%Ybc~xZOB&d-r+W1ECQXeXI51-EAUT$!m^uP0wwPxE5?5 zI1S;^gr|eXXSAh;rn{K(Y-05+s{91;dFeQ#QbPF+mr&5ofAkSpRWSkdd`^Q{9~t2& z+u0V{FSdBUqFZbcxh*>=SToS{ z^+lwZ1x!e-KxKa%ffFj=cT#m41m2mg$rp{`1#7ye$dw<2;k}0I-uedxT1OuNwp*_r z0oH<+@9aBS!EP#Jkh>GvRn8st{h4La=Bc(T&HDbPdmOqr{(^tw;neA&FDv+_&zI^h`D2szR_Ou0lQzfb-M zEfg#OOCHpDcjd}tmnd_$;+Dc503TDw>w$9LdC(;@>3~`L_H@c@5NpQ7 zUf79Yo6kN1ESdCO3PM`*C)h58Y~+NFgNuU3B^7_Z!slES*0i6=ObO}|%f7MyeQ4FJ z#k)pz@SxQ05N-EV=tUv>qEX*|w9p>)+vCH90G~;l?&{LM_K`sL*|UhDtg6bYPnI=z zj(htqCl5t9^|Q^|Ta7-mH|{ejj)Vh?VelyCuXNjov5ETVt)itdDr3SzgL?FgdLP-p zJfjzQcK^EVwzHB@xoP^;c5u-`escAuH^O6cze?%4DN7*dm8&MG?ICyA!=ADcv2D+V zg=P5o@vN+G8?*CKOgsZ{O`NA!Kca2nTP|stj*6eP%)q*TT=aM{7&the6EtY>RatIN zWX_nctAZ(1?1UjQGPQUq>8+P4xnEbicK>9p>PA!02fF>_4bl7=AU)zhcyfpT&SX*f?S+(zAAliY~zVhflrZX>B2t5 ztwU_f!;Q|yx>V+7B7WqpWUfl{y*+Nx<)(r!d|;<^~oHzD2NCqrbs}XUc9629jOdkT|&6&lRLI%GiSn8 z+glqaQDO}?bI?aP=joJf+1vrzKF4}vHTz|f39n6FRaOe;p2%RaF>y|qgSAFftH*lT zkw-EvbI|8%uU0Jdsjyjcz93MqdX#(xxzLS$sV@~r@N5_ilvrKTEHqgB0DzboT=DHJ zN|fRM>4_8B8qURt1VilgmZDu)6*;(=tftm)L{rFQunE^xL1J5190}60tscmmr{o7midEx{2%JbuQihWUOZbd?a^964;6B^dsB_q>yYsqGR}XcRnN z;zRl_hat@dVw-~7+<8M34N z@s`*|yC2y$AKs%3?KogfEmBwWGpP9Jt6aglmzheo^_g&=$U%9rpD9}wWsZ6f57aOj z6}-X%;e@~IplDxDU~VaF>Z>pm#a=nLVB{H+Ro;j?%UW5(3*0))|YDgpeWj`vbJM~@=cN@ zY+feViKs6RK@Iu*opNq~YQro88sGED?CGMfEcNM*Xr*R^buOUrb>R8_hqzlaJE9nb z67*)Z^NKm{7utILSV0hMfD3g#6Rl+zV>x z*7{{~$w)=qpY(&VsYQ2L3f^dPj~)@b6&u_2si7C_rI&B7r_HCS82b`o0%Kx2&Pr9i z8^B{cM|J%rc`%S_WFxz;6Mt;6zDrZ*{#aw(w5FPi}MzzowC&gf6k=?8oVvl~Nx?#6OfLr5Bs{QS^SUkLbxu8q2auHq+QzTI$(<^$&7S)m7 zxHp$8SN5#OwrXaB?)&A0uN|H}0!ZS6#1glaSklBgm)UE!tmT5NE5h6(R6l&S;(|fg z)4{s6W~uYN*R4~OG#+)x#hZER&Ir&;-6#bbHKp1YTP_RN(N_zb67vF>|0ZzZ$4W?v9&v8#3Qd zo6{nlu3ICBVA$%wJC6$r3z$2i-50o!9I%Cp{^dN9>kdTE&}vPEC!}yg>vG>aO^Z;1 zO47RZ-20KOG1}=c7wUao&#VlBXEhuiUoW=O}DY;+QN+&#!0y+Uk%g?>yp~DJwRbTf#9+mfYhTFcUO26woS#Hkyxm%b2_SS~= zQdo1_@+yRR5Gs^?RV4mX>jULE(S$?uWTe};zVdR`l83!SQ%>U%;KEra{Q#+3680*> zUFB=s)q%$Hj@OyL zMVyPv%I~zA)`T+iYRjk0W@t^TuL1eGfDiS6zaEnl=&U^gs5siZV_RTZ&xlv9eh(fX zT%MvV=xzH^g()hH(GKA?VJ3;adEa1-sR%-M{^~$&oQ#xzfjRBoyg$Ajl;+N|DFzeF z+;6uCN(@X2GAWR_@?wf_%Qdkx3}+aEV<1y(M_* zs9Wq7qMilH1?xD~1O41K;ye|qK83bQd2K9|CG=7NO|6KvBnV|ad^2<@gt{~*EBX-muoUAxKhPemgMujFBL*=2rtu{)iO^7x=S7uj4Tna+@h3r`MX+%4Z3CgvQ$tpxkNzKf?;X}; z)~<`=IQBLOh*A{#hLl`o^PLhUHjYnoa=X;KhF9i@B0SUn`b?%KhOQ#iz!txzOxA(Uf6Kj zjCCkYITuQXy>jDa=ZNQ`1xMnXi4Ij|;d0UD%9yg`d=$f!f4!5pYw!dAZL2K@nl#j? z#7+TTe!rz|o?yqkv8jh7%E}8TDk6kP&5RohnF2ge`67Pg6X^X>C1p%DkziqkdbZ-3K!b zQEA4_%EEA4xQvW8nKt1QV}ENZN9W^xJ>h-R@V6}2ClKbdhV#_^O>+--m71sc$r zX1r;hh>hATt(+D6GJpwJZ6)kbJSC>5=e+}~tNTcbYY1Pt#RAU^Le&@DmSMD|`|fmw z05hdV8}z(Fbk&_pq6ZArESWkpP}io$lg30F7H;14Tl_iOqrges&12f^MceX#ADa`k{h=D z>CTy#B=(<+qGBv}R8P_uGZ+Hcb@O;tt7+c_JVs(mug129uwdx#hL$n{+u!asiP3innR(6={>1k=5xtjAnyr6LcrIce?4^Y(B%@z{67Q)VcS!b#2CA(G*coY(FH8j(I>pp zwaY^nHt+GjR4|q;KJ$t_Xm+RwHk*9O$$>?{ zq7;1lNd{bM0dk?*B>)dix-wWEY7PeU;!fY6#b;YoJik1wHV_vCs!<6vw|9;^>e_6( zc#6neF7oq`hJwW2UDS6r-`Ub(T@PLJ z;6s{fR94`Mm4_klVI|$H5L^P0T2+y7PV_vqcM;Vnz^qK!d4Rc0xsKlaCsA)?q$0K^ z&*~LD`gnQdM#5^+d^Caof($0?X)^jq{4O_?a@}E3*i&uPvCuatUpia0sscX)C#-+~ zAwhG;;wVqC8(+NAhYNj4d9DvOr+-a}R=d)+EE)whH(2gloICYtJgmoFx$*XRzOGGH zTB*tJR4FdbR+jb92m4qO9kuf7{=szh-BQn60XiH0n(Hg}ZEC4vGL(#wRde?PwqIp1 zl2*!sGc&y&vw>4q!dX>x8rWxP=T4ZTomlGfV+z8?Re7A(`5iuf4EDu4yL;kf=y$em{4Ew@(@?c@*yvUIO6@XOYUVqe z{S)kw?`#GP?8h+ufOOww^0y7YuJD3o`w*>L#xe)8FIhQy_5$c4zq_VE{xm}kxj$?GKg3u4bULVVey=wF+(Df9WYrDp zQdCoTCiyiX1XXTj4?c(NefsLdpZmKF-yxHKa*7PIHwe%|9(~U%|%iu zlH(h?IJ3q?uYl6+^R{6SA13x9lZH@N*nS+FR9oj`=y&zREBlzq0IRON+4wQb2D?{c+v|GAcx2FTo6w~&;;s#Db zZS;9o=yr5m;PB>oM>X{R=F(dIGB@-!%LghDTjMr5mK&?I@}pCkr@5HAe{ttN8^PQb z5jo0kCi=M4P&hR?p@bV~J1dhVv2wP80367E`$&h5joB(9t=ot*dU2cqBaf?+Gly!l z6ZLSgnv|Rn?J;tW5s|&}O3Gc2MHnm(vCte?Oj;UJFYoG^N10O$l#0}wi*UuL+|L%ptzL}BHGXS*w>bAw zd`|BBE>Ex6xmjIF+b1%oR;@3_c06M{5`Eyn6jqwdUs@oGckvb(ntU596(y^5+je#u z5bTB1j1wEPU>;K*AuXL$UL=oo_;RHSb~-bY;A5Qo!<+I`kgD#=%)r@N2RWm5q&Ggi zL7tkhjnmcf#=qNEgWgjfdSp445DN|l>L=Tdc-0^d9&;b&f9`(2yU8S60bHsrAIXK@ z?k&9&u4X>2(ybV$*JZ!`6HO?%UtFd~y=lRU&~=pC{xJ0^ur^Mvb`a~}6L!2--~4te zb%!VDiQvZGaEsRlq=?X2A{=(SNu($flj{x%@&z3^=vEyo`Oc=hH(f-=-#)QHBSYX@ z!yB~G?2BP8BjUa16>at_uf(c{y~r`0mkjmtZUwM3a-gEW%e5G|=!=n(YE=L0Za3=krGbyI z{_NercgT(lzJD~)fB)b!@40JumIyG{1DYHKubW6F#5kH0ZD%Efgo5rgsE-z&Pg7cT zju#s#bWwc^(4Uh|wl}27nJ?O#cz77a+TSCx)h*Idy3OsD`87@v;dzGq z?JuQ0x((I1`K2eN6Qtvm7r$@#DG{D`!i)@{owvxZ9?W2I8xnyI!hRs_gc2N1IsE}G z6qk}0k(Z6Cz!(@btJoidUT?LWLRk(GkOB=tlD0G*9Tvv(o-J$O82qickO=9tWzghJ zhork3z;~@Kt~GIXkOcW+?1hMpD3tbBqetRD@OGu`CTd^2M$Z*Cl)(b(TS^<4D$ttS z-vC{i1cL~~F3*9PZfF8^Z2^&n=WvWv3 zmwocV!o?*W^$Qjpv9X~w%EC$G-5)BmrvdefZ4zoJ3zfIP92b``BLdRh*UGJVrV9%l z3^L!e+66*7n=`Y{N5V&_HpCfBkp(p-bFh1@zAaQItx0~MWj*D%P?rswT#?2dO;fw1 zv$j{oF@3`)aG`i9_RacJvQbKwuDv@0pY=(fNAizKITA+!n)dcEHm`3`eXw&fE5IkZ zi`lw!(@{kM?*z8;2@mcy7`=_I3VihJeK9>Ne@}IQ(Dk9^ejIa77++AFpvHTls^&Jl zqZnzkXeupz&q1n9^K0DezrqJj*YdXDr3~Jz3DE{K$mC4OfC~lBQ|yW_>+y0{pjq~- zxqb75%=+&6@H#r%9!j>jH%fE+10Lfq&+`u&ZB8X?u!i)|^T#$bXjL^<3)4OUYpL$- zR9=-`fu;|=elWb-4M!`ygkxT;W{sY(-zI$EY07y`Ha&y?>+*L8@Dnv_T|D%|$+`5S6Dm+%723 zUi;xUmX>}=o=~WAZw|OfC2pbLr_d@t6mAzW28i1%{AzPu_w(&v5ZQql+eGA<1DS?% z9JXuQDinLU23u3!915QfE`zo9sG7^khsEV6lN;jcW|~GEmo4nJj}zEUF_TBT6O+=H z7N)wcYeNGAN3!JZ4E}T@`}vLW2&FG)rFC^U*m-)1*la*S20QyLp{rW2|LRMpC9e&7 zkXu*-U*^;EDoFw4?JPrUtYjdOL9dP4`}NV9@herM=KVU-lBdS~QaG-EP$L}}S|?rF zEfmaVX}BC72J|c2XUZa|H+goF?e#S<%>IkYfw%oXnTkfu1=IQ3ylu7}oDX-oyfouf2V&5x{a1fcSUz4Iv^6?@%UJ2%9f6n!XBeQ|co=8S=` z414RB(Y@^;WLS=JYIbl!c}Xav(OW+spBryXn~po(SiTN7duDMfA0=o=Z%T}3xqK=H zC~?dMx3x3srPmSulHgvt1x~aE0;tLS>5A8j&7&pz$wOtwhJ$UciS(nzGy); zh(#f)2Q*pq%;EZou!_QD}dbjI%6jq zI!10(QR=5(KO9!Ek_bDecdrjG*(I_x?Q?N%Dl`M4KVc7fXo$)BqRZF(7*GCnLF>u3 zKY=f?CPBg?F`0j`G0IA$ZV20#foj*yeCFhGp(EAc@&(_0mo}?qu=iXMp|KY}h?&}( zjvL#32Rq1N|LKaJ%LmJnW>K4xMd@P^qk>~|(mkDKpNDTfi4!GaSC1_IqtJg|UkGw& z#$C_DlKjLf{BuJ@47RI?k8)iv=R(N4rIsy0S%x4H^P%CQ0GdWIyUUOV z%CVGRnD<9^RyvBczpLk)jjOa3&nbLIi0z=6HD|OU1<;bHKSv15Mu#?C4cpZOtZ5+17v|w6fz`I9 zXDD3U9?`-PfZe_tdpWfaf zOf!ou2CO%<*Tt%J4>Z~21aGa3&C3FobECcTKQGSESr+JzAk($QEyXT!kj4Dm%QKpk zpO!TTSp1;*p~Yoq9Wd$J0+NZ6i#NDU(nqA^MQ)#OAM!jE8m1X+T=6ObT=CZHL5iyV zurl)Jgl;ftJcvZD2)ZkOvopT155ePbP=2Hazj;#q_&nNl4~+XkV;QaexR(WNSnfMbG^7 z=gcMz-FK`&O0@QWv@#x;?3Z!nzpnUTw5UhUqJ>Y9iOkkj@~6c5fERPnJpoBjb~e(= z-E)d^=H2(2gP!ulM4TLmapdXgXUF*3>4!x@yGb&C$|xI`la&h^Q2 zJDN3w46$Xd z(SlR^mRKzK$j{k0Ot@javo=NLI~$-avmm6FL7$$&cr^jooA^3QEiwHL$pt&P4ms!< z5`Y!gb{Z9aCMV?C-^wE0q6|5mbkqOrV0ul4JKiL_o;eQVK^Kb4x~lpI632_GkGk$u zYK{u3<5L&lCND$@G7%*Q?4@m&1sQdS}fRG=*Z#$qa}0|$?Q@3gzhLgzmx z-*u_BDLn%{x6o~t?7tYJ4-mO0l&=7J#R>YcDCFWU(cLZCMAQYl__fV|L0P0aRq3RX<1%kY&=CZNq0< zVQ;FtIpu!wFoV%m;y}xAQLjX+T~pt^UKY6r3g11oR^kxvzKpP18k&*ppN<`of-3V| zWn(j$jhNLb9oz8LxWmlMC$}(rhW348X$|jF$SVEW^tJ|3LP2I+m(o@P53acU;4;VY z{}pRdHH zT83r4ve}3oi0J;w{FAhae_z5pM@WhgATqL72%tWI`}N74zv<Jew&Q$iDjyBb5$>i-@yGFk&!=os{Cu&S$p*l9aB4gYf0BW z4B1fi5jjB`s2U5ETPpEhj&G;*08b@^G7fyf+T)-{GKs^@p5}E%lc(RTZT)*G&;C4` zp*a~bE7j^@yYj$Z!p2_TM(|KztWK|yW-o+Ks`jLii~F#W-@@mryq*Wtx8<2K{1^Hw zPt(s_dR(vud)z6L5+Ey?F_TY}I$3R7#~81pL{EXk?ckDNR^_B-`X4o&w)67O2pTr^ zqtL&wkjkQ^J*`a81^_!SE1SU11!)wR%f`)~cD$ljflMCW&Qg1qU21l}y!vo5&SrQZ z2C=Z4+YN$M8N13lT1UKK%Crua@$m>Z1BRRRj$E@=7fkHw(9Ub8VyeYW zLSkG{b^uu8hapMZQ5HbwWG$oFPl_&d<6H7}=!UPxnFVDG53;Y1Lug5looMVpMK-q9 zh8GNo6It3_-XfW1o;MV^=8Atz=Qglzegc!k+nhU#tzuLqmv6Pa*deu7Qhc4IiVg_A;Vpe7 z-ZLUc`(+do9#yuaC?xkwdJjc(%75}Hvwakzp?y&-VYM+5i}Ti5%jXe}LmOOw8smVhCZN%fP#U)bSnf@SIT`nz$dY9>_`luDd zt>&lCJR(Ay4K*i(mDIf`~Eoa0BeP@%# z4U$T0Q$kudb8)#vdCyBxc@oX4c}mu>0)c+vggBt}j0Ub?3bX_=t8hG4Xsq_A@81-3 zf#*Bh!}6&ubd?A*Ho149cdg~jM+pgUc;D0n9q=?e{~@vxf%o$^r@SP^o2bMAtQX_1 zNG|v8WQ~{=%HD^Mb)#Uz*72Y1%!2ZU(Z6hhEoFS)A{&5En$ zH>w`w&naP06>uy$bLDyR5Edf>BX$g8d>&)>O^cJDmjZq5V!E)lQFqt`de!3W*A|B>dFl#jX~*wAO)KB30@QH#fZ8Ri zc=_CQ5GxZkP7~E^Sv4`$$^(8)lF!dtq8f=VlA6SvYH6@W9)kQ=Dj zdy5_&INZGTlKAsK%J?r|(y$N?3bh zR{4X-v#Tuo<1z#DjoI7LN`GiY@XLFZg@NITTgRd1gLI~gfuvVi+Ky;-AkHw->;t8X^Yr(_@8wcO z^DFZIiOT-VuWpuw?wy|B4~1F<5E@dCQ*k5=DMhhw-USVwq*?)+KY(DhDs2w;v7fHr zxt4B|<~r4Du0gdO=lKF)ivn&OiaL9CLw)b3O%xc+_mlGo z*?eo5xBl-Urlr zo#*B4Uw`MkfU@E^;6so`uO-UUUFR|N;?(}w%?5XA>L9@`O=@l<-Pa9&-HVEP9x)DS zt#R^IY;&!jlvX*jzOgL_#yZdMRrSX0Pu%^m)r0i7REQT&yZ!Urjo@q`6Eebjy6R;HUE2!_6< z6r{BUP@&M|Jc)VhOYO2C~{!v}gsejVewkN@Idd?(x2{$&38_Hu5nYft%&YbIk=} zSit+gk$AAY^f-K9vf(w*Ik^%#4gY(eYn)*nj&6b|76jQe^#MDV-tEYdHt^fdyTbSX0L^8-PGB zgNlIHS|&zx1xm7`MPpIW8h{Jiya}EbVOKd}OR;hy%7Y?jTftH#Z*`UZTQJ@+t}aRS7B)Zm zDWcofn(}26tPQ(gLTUL__#gr)l#{?m(*rc&Z8JtcVx^jJ0krsPu|-fEBWr_?$tV2wfwmrYEbFG0j|2{mcP;Dh^ z$q4Q(eBNo}NH&*AzBCxF{)Wb0JU@|4Km^}7k@BZxM^moM<_D;AXr4I8@U$qdN3%b7 zc!GT5oCcNGfCcIhJyKi_XF!owpB)J=+iGoNM=n z!wy#VFMVe-^1u7XpPUZqm98wDgZ$`$XYJumNOV}9+SNmycA7@%ZYYCU*2%t~o}$4~ z!XH#*kH7i%oX)*TK9v$s|?W$ zF{*~129duZE)ew;{e_wIc8y{s_f%mlorPi+-()OHf*;P9(hS=r|g{?MGtyc-M-yY@aOKcxuwZmv1#vE}@AWNHb)(G(00Zafb0sMUg+ zc?NxwPIY5es5uQtjFf^rQZg?yn|KCjac;cxDCJ+TRoRRk_E^Ihv%|(AiqK%7iIs~fe zE+9uN@wDitbvSNc#<@9US3VfBC{0{FryUzR{KYB7-czYKkjgXPO!pDOW#<;XdsC)U zqpDFgdUT`4O zK?fExpos)E%hVEfRQ3G*g>+u`!*#~Y{-ZZmy@R7U6sv{MZHO^h529rjiQ0oTa)CPy zhLPOQ^WtD6T$~xV(LZ#}S#SPwJgx5Zpn{PBHPt4WOXKtAT@(8Y0>f7xG*nIxGx~AGVX#b1NFaVSJzPgnrq&TCnV;*4iM;dGsO8fre>x@At1@rWqZ=IY;u`Ub z4RuBj)McpOvUnfT!x4RHt^Kq>p1a}ow+H^h>37hDavejt?+ZW&3X)^_vG|3AkcW;b zz|IR6m(h)>z?de9eM(>ol@sy?sy?c#Z(jWSv4}>cZOyMkThq5R@5ZX${;ag>|Ip;hM7J4^S=tB#lUiQkSt*RtU zUb3)x#A&UN^OWA1q>dShpA`g84-iTRpPFT{4K5+ixylL;yH<3w*eSlVsa!WDE`!(b z$>2N1&;F@Y|H8vVm)#9$3B|O>iH^btjqShEu@X^Gz;j$~g0Yy4;7rbz_u%_QI$NnJ zKz8=)+DZyn0*RdM>JD8^v%+%9LYn9g-~1+C6lIh7M$czn!Yv1uE6e`wfY=UXL=~e` zL?z}%L&D7|xpp^D#m39vY4sm!1 zUV~p!bbm|-v?J}}ds&G;;a>owY#@=dp71TDU>)$UGdks6ig;}}U3O|n`2nCDrDCK2pwK&Bw%sz3t@A|s!fyV={0 zrrW3ny${&AGwsp5fX|U!paoM?OgbK@8Q~kD>te+LSf>YS(&-ZR=^LoMK&S6)Y`~alOz;zNl|2_J?KTr$X0eZXb-+KVw}rgKA@Me?HM%dDG;uZ1Ut2(k>inRyzhy zUAW3`C0Tl7bJ?{h-gv~*|JNRyx_+c5`1Yc0R`!X{!=BND2%P;!JB!JI5B{V$z{BI- z-V{r)Mu7}+)=*no87{cxG&YZHW>n~+6*W9*kRDQhyr{YuPV_ZXUKEY8-r9l{LgYSG zR2o7pJW?$#A64KxPk8L5)Pp)pKaNLQjJp&j;0l^d6_>9iCAXYq7+bM(zi@I-_#prI z?^^#??*l7QTLTQpnP}E3$0t8HR%eaG(Qgv&t0f&BhWMC|u~dN6P;vN~sN}eTmYjFB zG*g335c%`;-b`RwtSOa zJ}9tnZuYru&f6^&MV7;j#>K_0qodN`9uZfjuE+>L!z*TeCt-24kZ?h8=s>ftu9-zP z(j>8K%kcsNNF<{3 z&m_dLsLZ!zeb%LinnhdI)6+czqOQgzio}U(aVoA#CMW3dva=I(d{WzRKa$Sk<_I2z z9oS569&9oFeh15Q=pSUzx`W% z{-mycckc^+9)BdiZtLI?b|m&we)8Ma#2hD7%f0B~7JrPgP)-IN*6gpsRg}QhrYA2} z@(C|up=K3Cf{d)er=c_J{@9cXhBsQzP(#OP*-9kEZ5mReM`1!#TI#@l4>I`Yyzx@1 zZn}xG{r6|proi1(M?2$2@1D=3ak9@(yL*^)9Ic3q1@c5j&D^qT|rOt zbQrS^Y74&!Xc)`66wnXo9}x$^G8W%5Y}SqdEym5|xHh=-B?7M{t3X#&ZpnUq_US&@ z6#SrR82tN=;FO-&v5o94+24PuNUpdyrXC7m2?eyrU{3nmY-p5hyL5?Qj0HBbMaxsuSH#k84P&(Y@DpeXz8@HZ?rAMvU=%NMKzJmNqd%?!C9oH7WBC{jq_o0IY(zx>Lf#KQQU{77O`&7;3 zoG5b5_!*uo@--M-LTvnU#;8VZun604Q0auCdO{VYVzWQyiGEDClcH?ZewXlX?jh@@ z*VFhvSvEYL61tm1Ya7pU#l@hC!39Y< zmVlCGL8=8gR>IS%mE<5IudrXIb&W49-#opgJ80J@PyjggQT~t)RLWRn>bG77N zj{65-w}pp~Hv0VDI1!wDVRy;S4KDo{KMh+qxfod0Lx1thl%W2b!GDkOf3NUuQee0Sva3fa{Lv?yg$GqL`(2>P{-1gUp-iCq!4lZ{nBd~;Ogn-aMsE04;|E}5#-oOBB?h9NcKd~Mnh&#|_J z@5tFC>lmiMp;anWEmZ@|H=}Tm*XP+k{nWqoaO~YM-p^>mzbeMa_w@s^!&g{Z!)3`f#`#BwlR2Sn-8puk-RSrP(~zk23)}TAi=I_Rwru zVF31EkU56}nJ>1=&lV@1Czs|TeO=PT5O_4Rbxz0$wya7lK!1D11+@hm)v(r?JPw%0 z{ugAu>a;;15RLnJ_OFGNk@<#FeI9L|@JO4)bagrR=^(fcE}0_$Q$!aQ@8ALaLdDJO?U6bxuLR4hQotA)dQux$37#0%m&CgzwCLVX{Vk| z#bte=6lF0-^i1|U+y@W6&Qyy_0{In82^7|iQI!?_g-a6|CudsS-kqGhQAh_r_XGN} zm<$dqYprL0Y5lj_xVIf0v90e}GH!Fi1wWN81ZrA$ksFZc>~5SR^elH1OO2aEScr5K zVD07SlXw0@wf!_OwZ-`!F?6FpSAo8~D(2*AFA>B&b=1A~9P~R|dgz{goil|_@bsuC zmElimkxXz&d+g{~0L#KBGncV~7gd%ft|q9QMa0+}bUJ=MJVhQ6d1oh%?t>k{JE0y`Vj=#${A zt6xfkP7KQPIn-qL2mY2+A%Swcq{50(HV4tTZb>}Ge!2%*x%gtdGmgR7OivPFQa!3& zI8Cy*b%(B^-mTiacaPk@({DNe7jhFKYJTD-o}mb!Bqr*GT*sy<`UnOepMsq6@X%sT zPth@DV~A}S?%Z?BCq}6PAM5m!tqO8j5x8!6?j$R5o8~qvfhfL0ZS4Sg4Hdf)=S*`k zpyENZ@cDqu6XqmDZ5hJ5zceuDqFYy%C2t_@xFX%gIi7#W2CQbEJO;j)O}&^G>j&gb z)xl)iR`W&S0lE|(+z3n=)bjeTS^!*HJmcduT=PD_QO3idXYfi8x-*`{Z4n~q_MHup z@59lUs3fpy-ZpK2!;t6Bf2g{n6PA-`oPY1b|E>^c zVO8nMAEJ|Y42T@ejk0I$A$JvX63fz!Y1->owOp?Lhxh%fkH2_Lkh&e}G%B&`W~1BK zgApoe_1-9Yqf0WRZZ9O!&1lnJLTeWB^7BQu!kb3hQiDb*uVg+KU+kBC!}H!xZf-`O zw;&34o9e9v}TSt^7t9&eWa4UP;BV(T*QFwDpQQlf3h7jyKslb@p zzW4ita&<9pBSU#fXwtiUS}83tyWP9IMi3J#bP_Uzc#U3 z&lfOO@AunH(YWH$mZn*(eTX9`Jy{MBpJY~4LJ?vW3}%2Iq>lYnnH&k@lbvx5OpE5c z1!juW(9C8c6poel_4DImH|yx^)MxG~-MAhrcs&uogw#Sgl6hjcl0Utw5z=Um)fxj$%TC> zP4^9O4-kEa84j#8TzAeda44C_dBf(&IY}rPRK|mI_sQtKv+;QceKicmya=91Y_WMY zb-_#0(*m18`8uEN);4@e#X3t#m&6f)dS9}`b}@Fm;qAkU`E_@Lu?54>z#z=&bPcec zq)1VA96+z@_ib;8_J$Q#B$>qD8d)8kI}(qGoX89Anhr5^VVDBFV>)>clG>U=iAqU7 zw2k+KO4r&iq>sE^MnuAWSk%n#?7y$c{cexGG8d_aM;x#mdv7u1WV z#YN<{ZrKgn0w6{v2DQ1XVQq!$RIiqb<3szIyu)06Qrtm!_+&ygA6>^(&um6Q7AEo5 zMO5sRhq)Zckt0TJQ&S$?7HgK2|MqICcIUdYOfq>lBxS(S{>{s=RVGFx({`%Db>xW* zX0AX=Ue0dl#T=40BC4>|Z^}FN;#H$$}9! zQd`?2UhMLI+k?^ja})P_UDs83iju4Z&{f8#va8aRORrda4SgnbUd9n)4y+92!0Z*S z=U?T}nf;7Bx~D+9BX2;APV9CsdN6!k2$SuXiC1vU_c@rb;o0oXf zKy~a9^+hkxl(*UBB5>Sr`rBY|@$YPG8-=~dJgop?pOh~LR2D-1_*h!0*&jbsfGr5p z<1{6z*>02Ae>vN>(EVPJSrWb!0v;4XZ)SLMDyPo)dcP0T>jd6;a~^dXpu1k1G%`e| zw1I-MC9S`Xy?ZgnLUy{gpS7o6ICBW8IehTu+DiestS&~(;e85g%m4n=OF33AI-AwF zXGwLZ02r)b5dVe7vjTtrG&1{=W5g$F#uI(i})GHw?ucCFC zmGeZtGugzc+S&_LOZMP;ZPC5B<-4Y&`;Bna9~L-)dw%*YwEdj6M~c|)zy`}jX7I}& z@ye`>|J`&1MX~j*jq|%(QRbLz96>|(AqR$z-az_oTQ>mMJB$cAi0&R?(^4V-$MkH; zw~@zjq#E`&jCx4$X9XL@t+QEtSU-^g`U5lz)5Pfm2CxjjI2MUK-j?O(0CRDQ7#!K= zOVqmVqa~c3A|^bMj3WHG@xPUw{oIkuCS*uz|3+o^0K#_iY9qlnPS4E7Ge8wbewxwK z$&~;U9$?Lk*AnqG`eiVv)%U|-%RuF=ZX@k|p=sU4Z^SJL8w~>Ke2JmL0U)7y-gx3-LLl-&Y_Xr`uj3H zGB(rSOxCe4WyWXBlowLbGooquLH4*C4U1)(155kf-g}g4LJnofBc)%wv^8-w2aC%Z z5$e|MPhV=CdmBe%fPs9yIjO1IxipzU65^K9(x6QKotBX@n8TEjc3UIHI5a}sgV=th zlzE&xpmk33O`UWlP9h^>v@tQDJfW3tK#P509!`0?&k01Z}< z{RHRmWZoSJ8-e~tvK*%jDvMp-W51?XkxN&#%cIc^> z13l{6tqYXgpnXvU$7}yKi??m?DkCg4%Afn_WM<|39K##li_u)*+1u$f3n~~W7&aXs z;uso4SZ%x#zSWg!iddrZR!tAjZF%;$)F}t7`{>EnJEZvoU)asd8|m&s;_YwvZNroK zqWL1@fPC~oKDyWm7OtrV1n?Nb4Xv8rG7Q~B%XELSb-Xy|iCJ{5swG`M*nU!6YclMi zZ0xft$Nt({zL*`j5&i*N!=*&^<-%OTja~HQIUA)YE$1lWN5d z`95+n6idp`YF?26?{hh>_Fvn6n7POzU>`pnqySHgr(K_`&E3?Y6_2kCIPdDX-sPGu zkg|p0MO=&0x8 zcs5=VFd%$x^sG!10d1wIx|#L!27kjcjS*t=$-(c=IO<)oP=1qzz>$iU@eZ(bMn* z>zSgsAEfyVojbSxlvCWwCePleCWy;Ex$zi?^_|kpTwCiPx53~A?Ox%F!S|kzXFr+r zcId@@lT>g8Eho^u^aIfs`R#hVt?Z^wTL z5B*c-|Iw!$GLWo1KO16i4n>b~mXkz`aZB}$wYtMxi-%@b54D}OlA1pn2ptuW0)a(>D|%t5s#yp*_5OL@x?eHO8N9#iBk*1Wv*Ww%{VfDGxA zQ3MwpXx5+KO%~+4V+pS{4!P6Ew>6@qrCyn%=EB-oZX0fuUO!#8!+H81v~1`pv`J}n zD&aO%#U54&Tb${1INFijPaP(yT=5*JuAwZDh20AM)^Nq?x_5rFO&8P~Hl31zd+eV> zYqjS~7AavF1ZZ$IjryzN#=^00b-}WG<&BwwT~BGzr%*udni@Md%ny5d#b{_y5XtXo zZjb#dQPXZrf6|K5h{iz*{URCrkZx zs&KefH|CQZHpiy&G7g|2sBQLAsG;6``?m3DOp9i2hUhOpP%=uvD|O#GR%)k_%hRXs zT~?UnI#BMHol>h^K|gt`^}`W7kp3lSU9mr_ZZu4G=-ws4x?YTms`qCYSaaXxWA9eU zXl`P+|BOkvspi$U@N8Cw|6@Ii^{zit+y$-+RD;Srn#*3)&B1n>~>wly4%;<89><@xKEU4>e>I%M*LSvgkRKYt(y@JiB>g*zr!^z{$Q>j zRyy>oI`N%N#@nlj^WDkf|D>Y^|9uEN`?M|$xMjF|e)*dys}{Rhum0yDFg$+M``duG z>~5_4w`BiQ5u~fExy<(*iykh#3Vr}C3p?`inmwy{|C{OL*y@9CJ@_z!g%|!NPy0(& zMEJ)_U~PKQr|)bnEVI4NjeC;coNxPVFm_tY7OXx$`eROgeEV#1>vy&zhvv1Rpn{VR zQ)3_-qfWK2ncvwyyM2Ci?kY=GnAiFE)^3+D?vQV_-X|@;vvCVj^Dlm9d)wRI1bO%t zp2(8?|B_brVx{?8`-}PbN5c8gvsd)%;kxH7IpMpGcizB2O;1UdgmKL z#3Zj9=*t_A7dl!-jffPdmsQT>yX9k@J^IGSrW?k}IyTRcNX1O!rJMcjsA~q5cUTOV zd%oAKthj-e!QNmXr<;91my!k*2DevE;GExR7EfnaU~d^2+Z-fzr{jcNgilUy$?<+| z4xDY?!n&rdOL{0@hf$gtEEd)aE_o3pMmnHzzQl?Rnjcu_X=_`b?lt52XKZYJmG5HO zub2B0iM}9ifrZ55c4`HeZeXIQfh;qT4;K;~oPRg5vA@a%jmvkRY*AmE^aDZ^905>H zaJXDVt1wz48ZzPfc4T?~NDK?&fwFXLW2^&gc;tqtm9_&JHgkx#0KViZr3qZXMBoL$}1_Uhh79oVt0ty63=)L22oVj!F{queIzVFX({ow2$IcG2S zUc0Wfp2xB9!;gRg{O{$PNk_#E2L#~(jls~VE7zE*h%5&Ox4Kg^X#O2$9rhbRUHLi> z#nEW>V&Xibg+R+T7Bp{aTXpOY_CiMU68B^3d~emlv%iOqt_vZO>5-nv+T@6E7M5biPjF`6^5W03BnmD-5nc&M>I&Zufg=z)19lrS zJ;6|QVDOyx(}l-=HLD>^6)oxT@kjoc;2(jVaCOCnC5L-@gd1N#lQX9}6n3FeX2H5H zc>rbh^g3+p>KD+m>fWi2hPmi&p zKCg;fWbB?{jeY_HI10R(#Hq_$=}{(>%5B++gHe8cyH!Y!T$EYpwSf1^vG6;T~B0xPf1{1EY%bIRBmLej7*fc+mQGBmUT={cP~6%|y*%Uf@I*;>}8i7px^ z3sEan)7t6%L}K`}*p+_Lm|2jrJsnBqkc($ws_5Jokb9}7mWaOj#c=~CoriKKP1Z5u$o0j3IGOmM1=f4@#ifO~%c=#3f(Y{jM-z{~_MrC?7{==H^2H&eN2b z#F!TLjbM`IiA}-ReuX~XMafZZOvxrZFL!Pam(ZoTf5AfMybUEVr*y3B*v8ym9giY| z%~R_*Qi72VA3Qhd5AP$qWnkQ;kJ&+>uyc(Qr+$|B74*N7ww11cP_Zw%_k)2Qn00=8T$@` zXY?G4a!Vz2YihNjfCsO0uG-jf%Q$w-v0^WAwlgi*E=4`)-SJH`MrWzVwT5FZo>$yQ zc`kLgqadB5tMD8CMy;DN^`o-hsy~51?=640(6vC?dFQoLAy`A53w*!I7~=$*@O9q> zT-o1L^tVR6^Zw)D<-`|I>K|J2)Oo9YrIGDKG!RG0gohUb)F_N4ErpHk(|wdQdsYu? zDL^-4EO=i}!1{$n6$o@}b_M_+Xw-`W+*;2%12vIz#z^$90MA(m39FTvI&QZwJ4Bx( zCGCcopY-UmG$`FynxrwlZV}C9=st( z@|kuGa4aDOsNYI`^sV?1)Bi5pMhX8MKPm7!Qh;%ew~zx%+bCw`Yi0QZzf| z{Tez_6(;A2B}yMJJmxf9YuGvtVEYWrA8-KCR{3D8onD%YDfd}?dE=-~ZPGB?j*qxc|mA-qNB#?-YanA1v91Ha|l zIqLAFp7juP7HN!p_i+aqF}Aj6Wn!iI5d@MhE70qr{;Fu=js9`>*amDlbc{niRhpQHq1U0q*&0*_VvVBNY7P;Jwd0GDxv(mAPk~Dplsfv$#;%y!BQU zAVnCE?|c$#C}YadJ51Bt%26+3cuniqa*IRAY;d!n(e*aedJsM~CNtl8$}ZS?+N30Q z)oeIk<{j!%uSRNbao&ge%j;>uYq7G!2A_2~2avwtdxJqY3iH$~pX_D?b-b`s1i0%+ z_S`DwS_+z9eVuQ3*8C2x;RVg(E9{84F62%*CMl)#%}8DBul+uMD)d#U|4#TGrYz`? zyDO}Rt*EAt1C9O4MlT^5I=X%U{ko`7sFQMSEox9=T`0<_+C|iRkBKfUd*|Y-adLED z9qmU7C^hWY4BAyvnYYc+mFPWawr6L)&s_EsDOsQEobW4&$Vu*7J~98(U%DKDZ>3IO zN7u9GtF>EqqSM1u<_{?fflC9gh!P{SF;Q{7Rvi4Bj7*Xnm0xLep4 z*uX!4CQB=GT{OL<$y4@tSi+kvUh&lxr(LN7o9U0qka;_;w21HVxz>qt{B!RSYv*%BY9h*&7WRIZ@}mPveWNaM z0i7fSsRG~7F`JpKXR~zAjl-DTRCwLGz~V$xK(d=hf#{ev6oyQz!uD?((VWA!nuLll>Gv736+f1L^^9?hSdizz4|58qsx_K+q zV^Hmb!{+9PLyOX8v67LoWywEm8VbVUCzawm#D}Yfa47PF=K!$%YcQ2+YUmCBIP|)D z=vqo=J{}6N^a*TPBuV2To>L@m#LPp@bSlC{RAH|QJ&pfR?ZXEKmYP51=*8UW8>7SH z898+MGVhu;*WcWVlLO$b3$34HYVg`AUtunTh?xs)98(46P>`+YT)W;RV5Fkpx9RIw zcE0wth6FmyVhYVPs)ByM;NEL(5F@Um1%FyMa_>0_>#qe5BDA_In)9Y;oCs;@G`s>T zJ75Jpoo+Moeh~D{3nz*Bm%GXJA=#Jlc3zp`U9F21q(Eoo==lh3pB2SWD>l_|-dB11 zBwLrxt`qC2hLucVo9)SA6k`Ms$oWfZN%*qh=)X+6@K4hw{r9Gwbhbs3lWk9z^AqLEl7Z294UYlSYP(9Q)g>T#5~;Zs{{yHR$jK zRBNeWkKnRKX>tw(=7X6bdQGmXI8VX=z}Sy{6;|1ms(y=!>5W0AZ2aZQVc!keEuVDH zCe^^8jwh$467RX80MFKrRpeuK{K@BVNmf>5(SDs{$(!!Y9V?4K_yJN zf^E&aKRiTObp+=4vZIziXD$q4=e5B`*XbFZBOR<3p9kp%;~I5Bx0-vq6AEj~YwEL+ z?gkbt1JW?pqHk>@r{Dh~ET&nFK_6dG?Lx$lJm_xUrtN48_8`9A!T*=?ps(-d?ITQ> zGDS2jNIunM;rsq-Fbu*}?Sh;+&l%?g4C7ElV3>xI$G7M)5n$|k=0hbDadwfjc%hz@J>Jzhf# zEb7)aSLwVT1v?>2M2+4{wz`Pg&ms12r@?eb222{;H++bjcIt*13iS{yQ9M#YmcU8qd~GrtEmZxfwhT8L@l z1BOM}#TUB*-m3tp#dmbDxBhnU!z6jHBnir$Y+@BW1QYq4Tm9I@o%G%$`yI`LQ)Ruo zz-1VIJk~mjn3;RQ4dB-U@z*B8GY`(~VlV~}eA z*5wxv08;q=9DG(cEKFE8bH8TCg(kxJ^C16AeY|5!0KJ;m-90`TH)~qztk@oi3I1!h z6E+6yc7pY%SN#i9z{g%T`idl*RHb8{Tt2Pf_`AYW?x<+6Kmu%s4gD{BH)3c04EuHLq z7i`oazI&wY>dNu&E}=Jm+Ly-rr$XHfPW9f(ok2r--f|TX*f|%o@z1Lw4z#e>J`g3n zg!Z|1K#4!)n>K-pck=%4E@3f$dX$T&Xn;2vf0zG^(vt;q08@#d|H+5T54_&d1Z8_| zG)iiF!9q}rV=Da5Li$$sQ=*Oo5`OL1e^l}x zAADD8Liy5fJsi5P>S9$nQnf-{P6V$@S2cWte#xOk49+CQrK}5uJ&Y4rV=g5nId=*t zes$`6l|vF?^}GocV9UOXq-+x7T_l=iFH^=Ap{H$0o+M|On}K(3jqX)!n0%O$m18jn zWqf{D>xe~KxaaSh0W^pU-WwSYf>BGuYTqTm5I9dvT3YMqLShk3A2|-mswQoUj`<6ejXKqE z=!q~O<4RGk$j@KnhNKd4s_b?ugIi7sVzNJu2kJP#8SAiU*P!i$i#)NF`BgHbvAc+* z)@dz?*Y;|a3JVPg8^(;$tmEwSrIGLYcMy7hQNU0cPhbK=M^1zJ8_R7mc0x z|3r(a_zNwjv88-M0`V4v&fGBleH?D@Ii-j$edWXzOT@qaXt8z0CpHeRA}DATFdp|V z98Z)Z#x!TWM_jYVa#rk8mvuh8VvOllr-%gbW!2GNShdB5W7yidu zqw_OU_#^%>h!IgTP~*hd%GKd|_17m|EaGzqKCduqCr*&n(|-KZszD&}UAJZ&18MrO zFzWJJnK8AKz(MVZ-G9(Ahl=Ye#Rm=Sv*Alt-VrM`!j>}myp)Q-`gyrv-9z%UN5_lkZp|h38pSz{@oe<2XYcEuAza6Er;v< ztSDjIn7nk27jvw>RX-N4%rdVyG2Y`{Q7}`;rOgn+coI^f$2U`Xf4SuY?Dw_@T_l$t zSXu?T?t*fV>`lvd&bqF#^dFRt9kimacL-CLojfQZ8%{4?Radi$R+<~usr=McV)5Cl zNuiG-=bawQaxJv5x0mzQ4k&NTFN&3_&X*JtbiMcdeL`Nhp+Yc`974*G; zD;Xv!&5N?3!kvVn*n3O^#tjqk)b^h)syFH>KH7fMpW~kHnxcK}!x3<)AuFYVwm?8f z_0K)><<)|0{2KXH1VN1yi+pb3~i4G2JJ}vWW{X^d> zqV!Gq?($r;vXuocq66@IvU#V`2)ck`#e)FjL1@_SOx>5{@ zZO(@jboQL`Qm%pR>Kj8UH|0BqPP41g#tT-jcEGEUmI#^QQd@Q3` z4LdK&7I9cpMmdN@YY~NEBJKSdl}C*WMtaW{($3ni?3oOQ{gEIjlMm-Z!i3dPAMRjo zA1~Xcf+M8*xD>LH@THjaX21EEW;WzPV)I!y_VK&I(j8XM+|=crjd@c&HcC`c_iaqm z)KeRL5#28>cwZe=O5tI`f?D3g2csZtyj#07IU#j9`cYkgMy={8bg8<-(TyW}qRLoQ zXhwfqfsyoVABo28Y|^#Eg)MCq%UdsQZqDy~fS-(94e|e8Lpp zEnZzrIB8#{JsBafwd~C(bDf^uw0s=>t%ymkM3RG2i8Fam zU~6YA;pw$EBA=S%3`Nq!@EWAy_meQXcsGj?j3WtJ>6z`~SDON2GYtOu=6@($ueW8N z074jgmNjhG)~W*_uVb2(!f{0Rtjs)Pk*j~d{mti*IRSMkT6^Q8BDCx|jBFVl1hm*o|`Ts$*V&bvL_}tn@4(?+#Dd2gRH^oKf9sUNN<&$re3T^x1E|h1cneTi7 z!NkpZIBBX#^SLz>%+3=ak!w_T08DCqKkB)Xi-oEq&z{^m+^chI3pZz+JgA?ZQ+o1McYybEofKgXf`#B2C#YUa|9lE&TY0ag zYT-v|qTTMw8zJ?CoQs|>UG*~1Ps7V8;hG~Ev+B{=@upw*&&<6E?#e4683%las39pY@jKr@@rTpwu? zrPsJBwGbPdI1Es+PLTu?(Q&=nL=)jOUkG^651th+D{0%T| zrzo+|C)&&YC`*W2mA%L^bOIZo1JHpRj!(nu-D?G1%+~#@RkF_85kou^V>nO7oCmwE zaa@A5r((p~9a9oDUlT@ZN{&zVED<+6&nMf~gx=Xvv*4)9GhkXcrEmt=nIw#&+HB=W zY*)Pn9j^5$NS}ZU$~y`fZj5axSTL1F$XD?ql1d0sd)s@T5;3_s$p#p(Hfb8RMzC}O zXe{It-*NuUvfIUuf1K4-zb#feNhpN@=wKVz)|mDWezF@+X*_NJ3Kgx|Uzz_dKL>F-$R+&x{h6Rkya(qCL0iyD96hIc3wr zY|`$V-(1+NoJNHi4R_V0V-_P>8g0Ko!vkSG;Ho=1Hwp`0GG~Z!16;91txza;#a=L{ zp$pyxrv`h(rPDn(SI;pl+bk=i9JiF;3ECHzB4EBk!0pb@T!Y#mxr|=uiR9UX<_C4<-3h5O2L%&N?9irSavZVakn9GxJ7%E2pnFDxlW*2$xLQTcm=I~Lu84#*E43{1FEG|r-E*<`&q|O}ap^MX z^lu*63#jp;l%_Xu$daLW*WCj?*(q8g5Sj0ZAts`5v9YM? z4V#3B#}yPMxT4cw{4mC2d(5)mOw16eV1Y>_GX;9ib(XVh4Tmvya zElu^GC$kf-gM|4{V{dWY$$sd-Qk4Da1uYJJu087 z5ghWb&-|wnWw4%4e4R{l5FH@T`HqRaJAWr;0N~h@PL4dfT7=WTldY!^iQt?nD{S`I zP2T{RF@mS(T{@S{O;um4E9oBl>_@Rh#InGU)?)l^b1SIJ`MZs9L#P=8diVPHmC3)W zKPr>a$Qr(sI*ZM%Q7o{sx-;BHr}wQ|4+;5#Kzd^RG$Kn9Ad3@Yj(-IaeR677jo+1= zY(3(+k$twfwD^%a-FntgT4i)fiX53d!$GiNr@|I&=wkFEzEjcBnoofMCYp`7GX9>D zc9cL0_G!~Elz~BhHva^*SKowbM9xhH6Yz&tx@rR${Dw;6XC7N{cng+vDBWy){Y2+4 zAXzW#^7{+74`PAFv8NL8~(`I6(b%sB>gisJdwU`Um(J4w}N z9%i6gnOYjH-E%)MZ zrN6}+g8kIE*oJgTH9yI9-hww7V8v;=B{T;#FT%m#_DS+1wS$i>iluFx4YDs-c+u&i z6p5IaAOCKBkj?9K5r>rS!I#F?L(aitvw}AoEc%VhP&;V;Nmc(Wo|n-X3fWhXoK*zR zCW#Ch_~t)}R8zKo`ZRs`_R*693Xd?kZ_16vBtu!f;<~5iffk^MQtLl!`;UchZch$GlwFC#1npL%&%advzDFaqGs!}%Z3g+e$n{j$YXQ~4%S0C;$*JOI#R)ZE>IxRu7ek!9tDN_{TZOw4y|tl6x~Dq_7;dJAi98&ja9{(TWUE26K1P`c|P24c^wx zL;bC~oUGc2iUlS{@T{2H(x&p#Zv~$| z_IJZhJ{3V-as9zy837^jrmhRXt+AI)wd4F0C8RDN>x2@dN$dxMfx9uq1K6+7 zc6et==_6N(L{yFkx&)Vrm6VB>6npY-bJXAZ{NJD7w8$$#jkY{uQuQVM+W3bOJySc2 z-w0$9@8`InyP!>0Pnxe+XY7~$Q3CI?oiYuWCGNh&)O@E{5JJnB4dV;1FNJAcGg6{= zY|};-@!libCG-=kevydv?Ai%doLEkVtjLcja(uqUz1)p5bE^oaB4$okZO=-#&VqwV zN?m%+HHgyuE2xUU=lWF5iMdVb>#*vrk7Yo zMvZU{*q^TWN4q2(w!25+=+8JXizO``&I|OZ5ty$b~iHJu9z^=W4V%`cav4rd)uL-{{qE*fWcjWp<~&P`1QX6fj5 z+vwgJrfV^em9YO(DP;q;YD|qnrGo!(TbM7L%y(a)pAf2_rwoeM zX00t%%pMBT&5EegQK~g$%?B!!@X~#J^F%hbXmj0Dn`JT@+fQ|)OZwD`%MC#;QnU~=62~(vV&i2|s zOhTA{y7Ap7GS@=!MJWP_o`c?&Em6;XT{B4r6GSfWS z5z5iRw}5v8H@xR`b9YGb_0K8Om@vDGZ0*Zmn_Z^^0giY>icF$(srmqcZ?b-dJDc~$ zUc3tiqga^YEy~I^-*(a!ekFR_u$HiLPgOVKwr{WiDyZ~|B&xnBnY(^|DGgqoX!?+) z%eP0x;Ujo8h0Wo@CX6Jzl6Vf~qp`)hxwvjlZ*Bi3YVol(Zo{3ks5&t+Q!#j6BjkXs z1OP>|s($hQ^{X=fLpfaJ;7uJVTp-O9lz1dpDwQ$%h&j54uhdo#=iJYFDo0TmjhDko z;{?PzJj;3Y9zB|9*SLY?+BZo^QzUWE;^+7Mr9t^>XK@YOxw@_@7qg9)hNhn#)o{C( zoxI~1bR7RwHSBJ3`q-vYf27dnu_@7~v)H_2fwn6kBUG<=s$4m9$yVL;8m zB=XmyHA9IK8vge+OaG0_t?!)kQi!Gd>?^9(){!hevCVLELv5y$YO~4>ogSas)MzCY z-PR`f9q$F0Q#;Am3f_fTr z$TjSoFQAI2Y0t-Yjb}HdqS@||vFNA^f^|t|&AVyq#_?NnvpymT_B1C;&)C}z2Z+K& zI;%Tp2dhZxVwuU;l@u^RJ(O!?77C zVTs$+uuQEv^U2F#J+pK?8SYaELIqT`vHds52l_uQo_s&y*5u1*zokGf=CE}Z; zHO~j2sN69n9i`8YC=0)(l?9mV@K414+O}c1X(EWPMq109HL5Ei#zCFVgvbrl=aAydBs>~h9leF5=*j8t5M;yWWJ0sD)~Iv59d zYCAS%J=#L?1%e7a&R=&!eN7E9go9Db8fy}GH)YdeTEcGc&SHzo+U@qxcB(??y`||# z>A0fSc2p=ztS%uTF>LQvY$)+HKKxTA&cm;`@U4pHGuhs8s(SSokeV^0UhRN3)3Ly!(LQ*p(ijo~xp4XsIBf4}ZWmg{f`m(7unjTPJPvq~KE+;iOZ=kNcA+o6A%@xPZ2w~|`s0B{Vr-Bmfq#T+gdn+)$Kqq2%SoeDdk zEe0J&Lmgn-#ker%D}9ld;#&Kh2d>)oV=p-f$S0iPFXsn>#6&uJ*6E%{?S1S^H@I^j zXqHZDq{DA6M{c`V+@savo3xinp;fHMt_Ca8sPk&o;az14h?yl%R>351M@uRkS~7h2 z*LGrwX@WXd^98cjC7~ulACtt;L1x>RnR7hWjggZxw;2?HNrY+c6nG_KCl>;6f%oXN z5L7PU^4gYN@_~&NETa6=Y7zIt1?1aF_3!sa=3>5ptVG?Ctl1o_&K!h`c1)wYY9?|i zBMmCD1YdGm+!s)%{unTEA`f2A@8wDN_I&}(<*~ie?M6g}uI^0Okdjy9E+f$NvSy6Bzgc;sOD($bDog0Bb0BVK<7q$4(Cz z_O*QP7I=Es-bkI-I?=gF8ar zp`2?hvv%8JsXR4VqCE2~kw+rVwoVn`gW;WyIquGy1?5J+y})y`xLI4jtRtygUga+# zE^CbD*u=>Ui~&;%Jnfh1V%2FdA=sgPU*y&oP>aN7Wd09LG8#4+BGnKQT3lT0Br-vS zkXXXmp|YUs9nLw4h}?ee+_MI;hmC!%Runa9mvhgb=N}SXRnZz&GJ~AcpL_D_zgy@3 K7iGOKgZ~Fhn!alQ literal 0 HcmV?d00001 diff --git a/kadai2/kadai2-2/sample_dir1/sample_dir2/dummy_fuga.md b/kadai2/kadai2-2/sample_dir1/sample_dir2/dummy_fuga.md new file mode 100644 index 0000000..e69de29 diff --git a/kadai2/kadai2-2/sample_dir1/sample_dir2/dummy_hoge.txt b/kadai2/kadai2-2/sample_dir1/sample_dir2/dummy_hoge.txt new file mode 100644 index 0000000..e69de29 diff --git a/kadai2/kadai2-2/sample_dir1/sample_dir2/sample_dir3/Octocat.png b/kadai2/kadai2-2/sample_dir1/sample_dir2/sample_dir3/Octocat.png new file mode 100644 index 0000000000000000000000000000000000000000..91057da49614551224149b182ae0fc2d843e9368 GIT binary patch literal 2131769 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 literal 0 HcmV?d00001 diff --git a/kadai2/kadai2-2/sample_dir1/sample_dir2/sample_dir3/dummy_fuga.md b/kadai2/kadai2-2/sample_dir1/sample_dir2/sample_dir3/dummy_fuga.md new file mode 100644 index 0000000..e69de29 diff --git a/kadai2/kadai2-2/sample_dir1/sample_dir2/sample_dir3/dummy_hoge.txt b/kadai2/kadai2-2/sample_dir1/sample_dir2/sample_dir3/dummy_hoge.txt new file mode 100644 index 0000000..e69de29 From 56703c8c37844b3afd09e78214f5e8063cf84739 Mon Sep 17 00:00:00 2001 From: kaznishi Date: Tue, 26 Jun 2018 08:21:25 +0900 Subject: [PATCH 02/13] =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E9=A0=82=E3=81=84=E3=81=9F=E9=A0=85=E7=9B=AE=E3=81=AE=E3=81=86?= =?UTF-8?q?=E3=81=A1=E3=80=81=E3=81=99=E3=81=90=E3=81=AB=E6=94=B9=E5=96=84?= =?UTF-8?q?=E3=81=A7=E3=81=8D=E3=81=9D=E3=81=86=E3=81=AA=E7=AE=87=E6=89=80?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kadai2/kadai2-2/imageConvert.go | 10 ++- .../imageconverter/command_validator.go | 2 +- kadai2/kadai2-2/imageconverter/converter.go | 69 ++++++++++--------- kadai2/kadai2-2/imageconverter/facade.go | 7 +- kadai2/kadai2-2/imageconverter/searcher.go | 8 ++- 5 files changed, 55 insertions(+), 41 deletions(-) diff --git a/kadai2/kadai2-2/imageConvert.go b/kadai2/kadai2-2/imageConvert.go index 31d1a60..e92a2e8 100644 --- a/kadai2/kadai2-2/imageConvert.go +++ b/kadai2/kadai2-2/imageConvert.go @@ -2,8 +2,10 @@ package main import ( "flag" + "fmt" + "os" - "github.com/gopherdojo/dojo2/kadai1/imageconverter" + "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" ) var ( @@ -14,7 +16,8 @@ var ( func main() { flag.Parse() if len(flag.Args()) == 0 { - panic("対象パスが指定されていません") + fmt.Fprintf(os.Stderr, "対象パスが指定されていません") + return } targetPath := imageconverter.FilePath(flag.Args()[0]) @@ -23,7 +26,8 @@ func main() { var icCommandValidator imageconverter.CommandValidator if (!icCommandValidator.ExtValidate(inputFormat)) || (!icCommandValidator.ExtValidate(outputFormat)) { - panic("画像ファイルフォーマットが対応していません") + fmt.Fprintf(os.Stderr, "画像ファイルフォーマットが対応していません") + return } var icFacade imageconverter.Facade diff --git a/kadai2/kadai2-2/imageconverter/command_validator.go b/kadai2/kadai2-2/imageconverter/command_validator.go index c7c66bc..2875978 100644 --- a/kadai2/kadai2-2/imageconverter/command_validator.go +++ b/kadai2/kadai2-2/imageconverter/command_validator.go @@ -4,7 +4,7 @@ package imageconverter type CommandValidator struct{} // ExtValidate 対象フォーマットならばtrue -func (cv *CommandValidator) ExtValidate(f Format) bool { +func (CommandValidator) ExtValidate(f Format) bool { if f == Format("jpg") || f == Format("png") { return true } diff --git a/kadai2/kadai2-2/imageconverter/converter.go b/kadai2/kadai2-2/imageconverter/converter.go index ed2313a..003c473 100644 --- a/kadai2/kadai2-2/imageconverter/converter.go +++ b/kadai2/kadai2-2/imageconverter/converter.go @@ -1,6 +1,7 @@ package imageconverter import ( + "fmt" "image" "image/jpeg" "image/png" @@ -12,41 +13,47 @@ import ( type Converter struct{} // Run 画像を変換する。対象フォーマットではないファイルは無視する。 -func (c *Converter) Run( - f FileInfo, - inputFormat Format, - outputFormat Format) { +func (Converter) Run(f FileInfo, in, out Format) { fFormat := f.Format() + if fFormat.NormalizedFormat() != in { + return + } // 画像を変換する処理 - if fFormat.NormalizedFormat() == inputFormat { - newPath := regexp.MustCompile(`\`+f.Ext()+`$`).ReplaceAllString(string(f.Path), outputFormat.Ext()) - println(string(f.Path) + " => " + newPath) - - orgFile, err := os.Open(string(f.Path)) - if err != nil { - panic(err) - } - defer orgFile.Close() - - img, _, err := image.Decode(orgFile) - if err != nil { - panic(err) - } - - newFile, err := os.Create(newPath) - if err != nil { - panic(err) - } - defer newFile.Close() - - switch string(outputFormat) { - case "png": - png.Encode(newFile, img) - case "jpg": - jpeg.Encode(newFile, img, nil) - } + reg, err := regexp.Compile(`\` + f.Ext() + `$`) + if err != nil { + fmt.Fprintf(os.Stderr, "正規表現解析に失敗しました") + return + } + newPath := reg.ReplaceAllString(string(f.Path), out.Ext()) + fmt.Println(string(f.Path) + " => " + newPath) + + orgFile, err := os.Open(string(f.Path)) + if err != nil { + fmt.Fprintf(os.Stderr, "ファイルが開けません") + return + } + defer orgFile.Close() + + img, _, err := image.Decode(orgFile) + if err != nil { + fmt.Fprintf(os.Stderr, "画像のDecodeに失敗しました") + return + } + + newFile, err := os.Create(newPath) + if err != nil { + fmt.Fprintf(os.Stderr, "画像のDecodeに失敗しました") + return + } + defer newFile.Close() + + switch out { + case "png": + png.Encode(newFile, img) + case "jpg": + jpeg.Encode(newFile, img, nil) } } diff --git a/kadai2/kadai2-2/imageconverter/facade.go b/kadai2/kadai2-2/imageconverter/facade.go index 12bc266..bf3f9c8 100644 --- a/kadai2/kadai2-2/imageconverter/facade.go +++ b/kadai2/kadai2-2/imageconverter/facade.go @@ -4,16 +4,13 @@ package imageconverter type Facade struct{} // Run Searcherを使ってファイル群を走査、Converterを使ってファイル群を変換処理にかける -func (f *Facade) Run( - targetPath FilePath, - inputFormat Format, - outputFormat Format) { +func (Facade) Run(targetPath FilePath, in, out Format) { var searcher Searcher var converter Converter fileInfoList := searcher.Run(FileInfo{Path: targetPath}) for _, fileInfo := range fileInfoList { - converter.Run(fileInfo, inputFormat, outputFormat) + converter.Run(fileInfo, in, out) } } diff --git a/kadai2/kadai2-2/imageconverter/searcher.go b/kadai2/kadai2-2/imageconverter/searcher.go index fabdebc..5329c14 100644 --- a/kadai2/kadai2-2/imageconverter/searcher.go +++ b/kadai2/kadai2-2/imageconverter/searcher.go @@ -1,7 +1,9 @@ package imageconverter import ( + "fmt" "io/ioutil" + "os" "path/filepath" ) @@ -15,7 +17,11 @@ func (s *Searcher) Run(target FileInfo) []FileInfo { func (s *Searcher) recursiveSearch(target FileInfo) []FileInfo { var fis []FileInfo - files, _ := ioutil.ReadDir(string(target.Path)) + files, err := ioutil.ReadDir(string(target.Path)) + if err != nil { + fmt.Fprintf(os.Stderr, "ファイルが開けません") + return fis + } for _, file := range files { filePath := FilePath(filepath.Join(string(target.Path), file.Name())) fi := FileInfo{Path: filePath} From c9a4d29a6943803880050ee297a59500031148ab Mon Sep 17 00:00:00 2001 From: kaznishi Date: Tue, 26 Jun 2018 19:16:52 +0900 Subject: [PATCH 03/13] =?UTF-8?q?searcher=E3=81=AB=E3=81=A4=E3=81=84?= =?UTF-8?q?=E3=81=A6=E3=83=86=E3=82=B9=E3=83=88=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kadai2-2/imageconverter/searcher_test.go | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 kadai2/kadai2-2/imageconverter/searcher_test.go diff --git a/kadai2/kadai2-2/imageconverter/searcher_test.go b/kadai2/kadai2-2/imageconverter/searcher_test.go new file mode 100644 index 0000000..6e9e944 --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/searcher_test.go @@ -0,0 +1,30 @@ +package imageconverter_test + +import ( + "fmt" + "reflect" + "testing" + + "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" +) + +func TestRun(t *testing.T) { + var searcher imageconverter.Searcher + result := searcher.Run(imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1")}) + fmt.Println(result) + expected := []imageconverter.FileInfo{ + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/Octocat.jpeg")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/dummy_fuga.md")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/dummy_hoge.txt")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/sample_dir2/Octocat.jpg")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/sample_dir2/dummy_fuga.md")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/sample_dir2/dummy_hoge.txt")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/sample_dir2/sample_dir3/Octocat.png")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/sample_dir2/sample_dir3/dummy_fuga.md")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/sample_dir2/sample_dir3/dummy_hoge.txt")}, + } + if !reflect.DeepEqual(result, expected) { + t.Errorf("Run(../sample_dir1) failed. expect:%s, actual:%s", expected, result) + } + +} From 9cd668719e95fbc3b8a1a328bab2714db1477fb9 Mon Sep 17 00:00:00 2001 From: kaznishi Date: Tue, 26 Jun 2018 19:30:20 +0900 Subject: [PATCH 04/13] =?UTF-8?q?search=E3=82=92=E3=83=AA=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=AF=E3=82=BF=E3=83=AA=E3=83=B3=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kadai2/kadai2-2/imageconverter/searcher.go | 23 ++++++------------- .../kadai2-2/imageconverter/searcher_test.go | 2 -- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/kadai2/kadai2-2/imageconverter/searcher.go b/kadai2/kadai2-2/imageconverter/searcher.go index 5329c14..b1906ef 100644 --- a/kadai2/kadai2-2/imageconverter/searcher.go +++ b/kadai2/kadai2-2/imageconverter/searcher.go @@ -2,7 +2,6 @@ package imageconverter import ( "fmt" - "io/ioutil" "os" "path/filepath" ) @@ -12,24 +11,16 @@ type Searcher struct{} // Run 対象ディレクトリを再帰的に走査 func (s *Searcher) Run(target FileInfo) []FileInfo { - return s.recursiveSearch(target) -} - -func (s *Searcher) recursiveSearch(target FileInfo) []FileInfo { var fis []FileInfo - files, err := ioutil.ReadDir(string(target.Path)) + err := filepath.Walk(string(target.Path), func(path string, info os.FileInfo, err error) error { + if !info.IsDir() { + fis = append(fis, FileInfo{Path: FilePath(path)}) + } + return nil + }) if err != nil { - fmt.Fprintf(os.Stderr, "ファイルが開けません") + fmt.Fprintf(os.Stderr, "ディレクトリ検索の途中でエラーが発生しました") return fis } - for _, file := range files { - filePath := FilePath(filepath.Join(string(target.Path), file.Name())) - fi := FileInfo{Path: filePath} - if file.IsDir() { - fis = append(fis, s.recursiveSearch(fi)...) - } else { - fis = append(fis, fi) - } - } return fis } diff --git a/kadai2/kadai2-2/imageconverter/searcher_test.go b/kadai2/kadai2-2/imageconverter/searcher_test.go index 6e9e944..baf4de1 100644 --- a/kadai2/kadai2-2/imageconverter/searcher_test.go +++ b/kadai2/kadai2-2/imageconverter/searcher_test.go @@ -1,7 +1,6 @@ package imageconverter_test import ( - "fmt" "reflect" "testing" @@ -11,7 +10,6 @@ import ( func TestRun(t *testing.T) { var searcher imageconverter.Searcher result := searcher.Run(imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1")}) - fmt.Println(result) expected := []imageconverter.FileInfo{ imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/Octocat.jpeg")}, imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/dummy_fuga.md")}, From ec02f66a675ad33d6abdfdece4e674105f53393f Mon Sep 17 00:00:00 2001 From: kaznishi Date: Tue, 26 Jun 2018 19:31:21 +0900 Subject: [PATCH 05/13] tweak --- kadai2/kadai2-2/imageconverter/searcher.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kadai2/kadai2-2/imageconverter/searcher.go b/kadai2/kadai2-2/imageconverter/searcher.go index b1906ef..4d2d662 100644 --- a/kadai2/kadai2-2/imageconverter/searcher.go +++ b/kadai2/kadai2-2/imageconverter/searcher.go @@ -10,7 +10,7 @@ import ( type Searcher struct{} // Run 対象ディレクトリを再帰的に走査 -func (s *Searcher) Run(target FileInfo) []FileInfo { +func (Searcher) Run(target FileInfo) []FileInfo { var fis []FileInfo err := filepath.Walk(string(target.Path), func(path string, info os.FileInfo, err error) error { if !info.IsDir() { From 62c79c7d4756b78964369966567720ba1e46ecb9 Mon Sep 17 00:00:00 2001 From: kaznishi Date: Wed, 27 Jun 2018 04:40:25 +0900 Subject: [PATCH 06/13] =?UTF-8?q?=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF?= =?UTF-8?q?=E3=82=BF=E3=83=AA=E3=83=B3=E3=82=B0=E3=81=9B=E3=81=9A=E3=81=AB?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E5=AE=9F=E8=A3=85=E3=81=A7=E3=81=8D?= =?UTF-8?q?=E3=81=9F=E9=83=A8=E5=88=86=E3=81=AB=E3=81=A4=E3=81=84=E3=81=A6?= =?UTF-8?q?=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imageconverter/command_validator_test.go | 16 ++++++++ .../kadai2-2/imageconverter/converter_test.go | 33 ++++++++++++++++ .../kadai2-2/imageconverter/file_info_test.go | 25 ++++++++++++ kadai2/kadai2-2/imageconverter/format_test.go | 39 +++++++++++++++++++ .../kadai2-2/imageconverter/searcher_test.go | 2 +- 5 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 kadai2/kadai2-2/imageconverter/command_validator_test.go create mode 100644 kadai2/kadai2-2/imageconverter/converter_test.go create mode 100644 kadai2/kadai2-2/imageconverter/file_info_test.go create mode 100644 kadai2/kadai2-2/imageconverter/format_test.go diff --git a/kadai2/kadai2-2/imageconverter/command_validator_test.go b/kadai2/kadai2-2/imageconverter/command_validator_test.go new file mode 100644 index 0000000..25776ed --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/command_validator_test.go @@ -0,0 +1,16 @@ +package imageconverter_test + +import ( + "testing" + + "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" +) + +func TestExtValidate(t *testing.T) { + var cv imageconverter.CommandValidator + result := cv.ExtValidate(imageconverter.Format("hoge")) + expected := false + if result != expected { + t.Errorf("ExtValidate failed.") + } +} diff --git a/kadai2/kadai2-2/imageconverter/converter_test.go b/kadai2/kadai2-2/imageconverter/converter_test.go new file mode 100644 index 0000000..0412526 --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/converter_test.go @@ -0,0 +1,33 @@ +package imageconverter_test + +import ( + "fmt" + "os" + "testing" + + "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" +) + +func TestConverterRun(t *testing.T) { + var c imageconverter.Converter + fi := imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/Octocat.jpeg")} + c.Run(fi, imageconverter.Format("jpg"), imageconverter.Format("png")) + generatedFilePath := imageconverter.FilePath("../sample_dir1/Octocat.png") + result := fileExists(generatedFilePath) + expected := true + if result != expected { + t.Errorf("Converter.Run failed.") + } + fileClear(generatedFilePath) +} + +func fileExists(path imageconverter.FilePath) bool { + _, err := os.Stat(string(path)) + return !os.IsNotExist(err) +} + +func fileClear(path imageconverter.FilePath) { + if err := os.Remove(string(path)); err != nil { + fmt.Println(err) + } +} diff --git a/kadai2/kadai2-2/imageconverter/file_info_test.go b/kadai2/kadai2-2/imageconverter/file_info_test.go new file mode 100644 index 0000000..ee6c842 --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/file_info_test.go @@ -0,0 +1,25 @@ +package imageconverter_test + +import ( + "testing" + + "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" +) + +func TestFileInfoExt(t *testing.T) { + fi := imageconverter.FileInfo{Path: imageconverter.FilePath("/path/to/hoge.txt")} + result := fi.Ext() + expected := ".txt" + if result != expected { + t.Errorf("FileInfo.Ext failed. expect:%s, actual:%s", expected, result) + } +} + +func TestFormat(t *testing.T) { + fi := imageconverter.FileInfo{Path: imageconverter.FilePath("/path/to/hoge.txt")} + result := fi.Format() + expected := imageconverter.Format("txt") + if result != expected { + t.Errorf("Format failed. expect:%s, actual:%s", expected, result) + } +} diff --git a/kadai2/kadai2-2/imageconverter/format_test.go b/kadai2/kadai2-2/imageconverter/format_test.go new file mode 100644 index 0000000..7e749cd --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/format_test.go @@ -0,0 +1,39 @@ +package imageconverter_test + +import ( + "testing" + + "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" +) + +func TestFormatExt(t *testing.T) { + f := imageconverter.Format("hoge") + result := f.Ext() + expected := ".hoge" + if result != expected { + t.Errorf("Format.Ext failed. expect:%s, actual:%s", expected, result) + } +} + +func TestNormalizedFormat(t *testing.T) { + fJpeg := imageconverter.Format("jpeg") + resultJpeg := fJpeg.NormalizedFormat() + expectedJpeg := imageconverter.Format("jpg") + if resultJpeg != expectedJpeg { + t.Errorf("NormalizedFormat failed. expect:%s, actual:%s", expectedJpeg, resultJpeg) + } + + fJpg := imageconverter.Format("jpg") + resultJpg := fJpg.NormalizedFormat() + expectedJpg := imageconverter.Format("jpg") + if resultJpg != expectedJpg { + t.Errorf("NormalizedFormat failed. expect:%s, actual:%s", expectedJpeg, resultJpeg) + } + + fPng := imageconverter.Format("png") + resultPng := fPng.NormalizedFormat() + expectedPng := imageconverter.Format("png") + if resultPng != expectedPng { + t.Errorf("NormalizedFormat failed. expect:%s, actual:%s", expectedPng, resultPng) + } +} diff --git a/kadai2/kadai2-2/imageconverter/searcher_test.go b/kadai2/kadai2-2/imageconverter/searcher_test.go index baf4de1..b5abdbd 100644 --- a/kadai2/kadai2-2/imageconverter/searcher_test.go +++ b/kadai2/kadai2-2/imageconverter/searcher_test.go @@ -7,7 +7,7 @@ import ( "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" ) -func TestRun(t *testing.T) { +func TestSearcherRun(t *testing.T) { var searcher imageconverter.Searcher result := searcher.Run(imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1")}) expected := []imageconverter.FileInfo{ From 9badcdea3d183148d682be2a06e92761e2f34030 Mon Sep 17 00:00:00 2001 From: kaznishi Date: Wed, 27 Jun 2018 04:49:12 +0900 Subject: [PATCH 07/13] =?UTF-8?q?README=E7=B7=A8=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kadai2/kadai2-2/README.md | 43 ++++++++------------------------------- 1 file changed, 8 insertions(+), 35 deletions(-) diff --git a/kadai2/kadai2-2/README.md b/kadai2/kadai2-2/README.md index d37512f..7cab0f0 100644 --- a/kadai2/kadai2-2/README.md +++ b/kadai2/kadai2-2/README.md @@ -1,35 +1,8 @@ -## 使い方 - -### build - -``` -go build imageConvert.go -``` - -### 画像変換 - -フォーマット指定なし(JPG => PNG) - -``` -./imageConnvert sample_dir1 -``` - -フォーマット指定あり - -``` -./imageConvert -i png -o jpg sample_dir1 -``` - -### 補足 - -- 対応している画像の形式はjpgとpngのみになります。gifは対応していません。 -- jpg => png変換の際には.jpegのファイルも一緒に変換されます。 - -### 以下課題をやっての所感とか - -- 関数の引数としてファイルのパスとか画像のフォーマットとかを指定する場面が出てくる。その際、引数の型がstringなのは微妙すぎると思い、FilePathとかFormatなどの型を定義したが、全体として実装がまわりくどくなってしまったのがちょっと悔しい感。特にFileInfoとかFormatとかが入り乱れてconverter.goのコードはかなり読みづらくなってしまっている。 -- imageパッケージを使うとjpgやpngだけでなくgifも扱えそうな感じだったが、どうも私の環境では壊れたgifファイルしか生成できず、その原因がまだ追えていないので実装には組み込まなかったのは心残り。余力があれば追う。 -- mainパッケージのコードを極力薄くできたのは良かった。 -- VSCodeのGo拡張を入れて開発しているのだが、コメントを書いていないことで怒られるのはGoの文化を感じた。 -- 最初にGOROOTの外のディレクトリで開発していたために、パッケージ分離をやろうとした際にエディタが「パッケージ認識できへんで」って怒り出して戸惑った。開発はGOROOTの中でやるのがいいんですかね。Go使いの方々はどうやって開発しているんだろう。 -- GoDoc生成のhtmlファイルはあのままではCSS等が読み込まれていない。どうやって使うものなのだろうか。 \ No newline at end of file +## 課題2-2 + +- テストを書いてみよう + - 1回目の宿題のテストを作ってみて下さい + - テストのしやすさを考えてリファクタリングしてみる + - テストのカバレッジを取ってみる + - テーブル駆動テストを行う + - テストヘルパーを作ってみる \ No newline at end of file From 096aa799b802f5d24627d521c4aafaf3f3cdcdb9 Mon Sep 17 00:00:00 2001 From: kaznishi Date: Wed, 27 Jun 2018 05:19:21 +0900 Subject: [PATCH 08/13] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E5=90=8D?= =?UTF-8?q?=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kadai2/kadai2-2/imageconverter/command_validator_test.go | 2 +- kadai2/kadai2-2/imageconverter/converter_test.go | 2 +- kadai2/kadai2-2/imageconverter/file_info_test.go | 4 ++-- kadai2/kadai2-2/imageconverter/format_test.go | 4 ++-- kadai2/kadai2-2/imageconverter/searcher_test.go | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/kadai2/kadai2-2/imageconverter/command_validator_test.go b/kadai2/kadai2-2/imageconverter/command_validator_test.go index 25776ed..a807390 100644 --- a/kadai2/kadai2-2/imageconverter/command_validator_test.go +++ b/kadai2/kadai2-2/imageconverter/command_validator_test.go @@ -6,7 +6,7 @@ import ( "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" ) -func TestExtValidate(t *testing.T) { +func TestCommandValidator_ExtValidate(t *testing.T) { var cv imageconverter.CommandValidator result := cv.ExtValidate(imageconverter.Format("hoge")) expected := false diff --git a/kadai2/kadai2-2/imageconverter/converter_test.go b/kadai2/kadai2-2/imageconverter/converter_test.go index 0412526..724116f 100644 --- a/kadai2/kadai2-2/imageconverter/converter_test.go +++ b/kadai2/kadai2-2/imageconverter/converter_test.go @@ -8,7 +8,7 @@ import ( "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" ) -func TestConverterRun(t *testing.T) { +func TestConverter_Run(t *testing.T) { var c imageconverter.Converter fi := imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/Octocat.jpeg")} c.Run(fi, imageconverter.Format("jpg"), imageconverter.Format("png")) diff --git a/kadai2/kadai2-2/imageconverter/file_info_test.go b/kadai2/kadai2-2/imageconverter/file_info_test.go index ee6c842..1e52fc4 100644 --- a/kadai2/kadai2-2/imageconverter/file_info_test.go +++ b/kadai2/kadai2-2/imageconverter/file_info_test.go @@ -6,7 +6,7 @@ import ( "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" ) -func TestFileInfoExt(t *testing.T) { +func TestFileInfo_Ext(t *testing.T) { fi := imageconverter.FileInfo{Path: imageconverter.FilePath("/path/to/hoge.txt")} result := fi.Ext() expected := ".txt" @@ -15,7 +15,7 @@ func TestFileInfoExt(t *testing.T) { } } -func TestFormat(t *testing.T) { +func TestFileInfo_Format(t *testing.T) { fi := imageconverter.FileInfo{Path: imageconverter.FilePath("/path/to/hoge.txt")} result := fi.Format() expected := imageconverter.Format("txt") diff --git a/kadai2/kadai2-2/imageconverter/format_test.go b/kadai2/kadai2-2/imageconverter/format_test.go index 7e749cd..0d3cc68 100644 --- a/kadai2/kadai2-2/imageconverter/format_test.go +++ b/kadai2/kadai2-2/imageconverter/format_test.go @@ -6,7 +6,7 @@ import ( "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" ) -func TestFormatExt(t *testing.T) { +func TestFormat_Ext(t *testing.T) { f := imageconverter.Format("hoge") result := f.Ext() expected := ".hoge" @@ -15,7 +15,7 @@ func TestFormatExt(t *testing.T) { } } -func TestNormalizedFormat(t *testing.T) { +func TestFormat_NormalizedFormat(t *testing.T) { fJpeg := imageconverter.Format("jpeg") resultJpeg := fJpeg.NormalizedFormat() expectedJpeg := imageconverter.Format("jpg") diff --git a/kadai2/kadai2-2/imageconverter/searcher_test.go b/kadai2/kadai2-2/imageconverter/searcher_test.go index b5abdbd..cf4b46e 100644 --- a/kadai2/kadai2-2/imageconverter/searcher_test.go +++ b/kadai2/kadai2-2/imageconverter/searcher_test.go @@ -7,7 +7,7 @@ import ( "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" ) -func TestSearcherRun(t *testing.T) { +func TestSearcher_Run(t *testing.T) { var searcher imageconverter.Searcher result := searcher.Run(imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1")}) expected := []imageconverter.FileInfo{ From 56dccc53aebcdcd6bb4084f465757f2d9deea083 Mon Sep 17 00:00:00 2001 From: kaznishi Date: Wed, 27 Jun 2018 05:30:58 +0900 Subject: [PATCH 09/13] =?UTF-8?q?=E3=83=86=E3=83=BC=E3=83=96=E3=83=AB?= =?UTF-8?q?=E9=A7=86=E5=8B=95=E3=83=86=E3=82=B9=E3=83=88=E3=81=AE=E5=AE=9F?= =?UTF-8?q?=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imageconverter/command_validator_test.go | 19 ++++++++--- kadai2/kadai2-2/imageconverter/format_test.go | 33 ++++++++----------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/kadai2/kadai2-2/imageconverter/command_validator_test.go b/kadai2/kadai2-2/imageconverter/command_validator_test.go index a807390..c4bd4bf 100644 --- a/kadai2/kadai2-2/imageconverter/command_validator_test.go +++ b/kadai2/kadai2-2/imageconverter/command_validator_test.go @@ -6,11 +6,22 @@ import ( "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" ) +var cases_CommandValidator_ExtValidate = []struct { + format imageconverter.Format + expected bool +}{ + {imageconverter.Format("jpg"), true}, + {imageconverter.Format("png"), true}, + {imageconverter.Format("hoge"), false}, + {imageconverter.Format("txt"), false}, +} + func TestCommandValidator_ExtValidate(t *testing.T) { var cv imageconverter.CommandValidator - result := cv.ExtValidate(imageconverter.Format("hoge")) - expected := false - if result != expected { - t.Errorf("ExtValidate failed.") + for _, c := range cases_CommandValidator_ExtValidate { + result := cv.ExtValidate(c.format) + if result != c.expected { + t.Errorf("ExtValidate failed.") + } } } diff --git a/kadai2/kadai2-2/imageconverter/format_test.go b/kadai2/kadai2-2/imageconverter/format_test.go index 0d3cc68..d917858 100644 --- a/kadai2/kadai2-2/imageconverter/format_test.go +++ b/kadai2/kadai2-2/imageconverter/format_test.go @@ -15,25 +15,20 @@ func TestFormat_Ext(t *testing.T) { } } -func TestFormat_NormalizedFormat(t *testing.T) { - fJpeg := imageconverter.Format("jpeg") - resultJpeg := fJpeg.NormalizedFormat() - expectedJpeg := imageconverter.Format("jpg") - if resultJpeg != expectedJpeg { - t.Errorf("NormalizedFormat failed. expect:%s, actual:%s", expectedJpeg, resultJpeg) - } - - fJpg := imageconverter.Format("jpg") - resultJpg := fJpg.NormalizedFormat() - expectedJpg := imageconverter.Format("jpg") - if resultJpg != expectedJpg { - t.Errorf("NormalizedFormat failed. expect:%s, actual:%s", expectedJpeg, resultJpeg) - } +var cases_Format_NormalizedFormat = []struct { + format imageconverter.Format + expected imageconverter.Format +}{ + {imageconverter.Format("jpeg"), imageconverter.Format("jpg")}, + {imageconverter.Format("jpg"), imageconverter.Format("jpg")}, + {imageconverter.Format("png"), imageconverter.Format("png")}, +} - fPng := imageconverter.Format("png") - resultPng := fPng.NormalizedFormat() - expectedPng := imageconverter.Format("png") - if resultPng != expectedPng { - t.Errorf("NormalizedFormat failed. expect:%s, actual:%s", expectedPng, resultPng) +func TestFormat_NormalizedFormat(t *testing.T) { + for _, c := range cases_Format_NormalizedFormat { + result := c.format.NormalizedFormat() + if result != c.expected { + t.Errorf("NormalizedFormat failed. expect:%s, actual:%s", c.expected, result) + } } } From 0c9f8cb2e57629ecfebcd8d223da75818bc9166a Mon Sep 17 00:00:00 2001 From: kaznishi Date: Wed, 27 Jun 2018 06:00:20 +0900 Subject: [PATCH 10/13] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=83=98?= =?UTF-8?q?=E3=83=AB=E3=83=91=E3=83=BC=E3=82=92=E4=BD=BF=E3=81=A3=E3=81=9F?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=81=AE=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kadai2-2/imageconverter/converter_test.go | 68 ++++++++++++++++--- 1 file changed, 57 insertions(+), 11 deletions(-) diff --git a/kadai2/kadai2-2/imageconverter/converter_test.go b/kadai2/kadai2-2/imageconverter/converter_test.go index 724116f..d8d69f3 100644 --- a/kadai2/kadai2-2/imageconverter/converter_test.go +++ b/kadai2/kadai2-2/imageconverter/converter_test.go @@ -1,7 +1,6 @@ package imageconverter_test import ( - "fmt" "os" "testing" @@ -9,16 +8,65 @@ import ( ) func TestConverter_Run(t *testing.T) { + t.Run("jpg to png", func(t *testing.T) { + testConverter_Run(t, + imageconverter.FilePath("../sample_dir1/Octocat.jpeg"), + imageconverter.Format("jpg"), + imageconverter.Format("png"), + imageconverter.FilePath("../sample_dir1/Octocat.png"), + true, + ) + testConverter_Run(t, + imageconverter.FilePath("../sample_dir1/dummy_fuga.md"), + imageconverter.Format("jpg"), + imageconverter.Format("png"), + imageconverter.FilePath("../sample_dir1/dummy_fuga.png"), + false, + ) + testConverter_Run(t, + imageconverter.FilePath("../sample_dir1/sample_dir2/Octocat.jpg"), + imageconverter.Format("jpg"), + imageconverter.Format("png"), + imageconverter.FilePath("../sample_dir1/sample_dir2/Octocat.png"), + true, + ) + }) + t.Run("png to jpg", func(t *testing.T) { + testConverter_Run(t, + imageconverter.FilePath("../sample_dir1/sample_dir2/sample_dir3/Octocat.png"), + imageconverter.Format("png"), + imageconverter.Format("jpg"), + imageconverter.FilePath("../sample_dir1/sample_dir2/sample_dir3/Octocat.jpg"), + true, + ) + testConverter_Run(t, + imageconverter.FilePath("../sample_dir1/dummy_fuga.md"), + imageconverter.Format("png"), + imageconverter.Format("jpg"), + imageconverter.FilePath("../sample_dir1/dummy_fuga.jpg"), + false, + ) + }) +} + +func testConverter_Run(t *testing.T, + inFP imageconverter.FilePath, + inF imageconverter.Format, + outF imageconverter.Format, + expectedOutFP imageconverter.FilePath, + expectedGenerated bool, +) { + t.Helper() var c imageconverter.Converter - fi := imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/Octocat.jpeg")} - c.Run(fi, imageconverter.Format("jpg"), imageconverter.Format("png")) - generatedFilePath := imageconverter.FilePath("../sample_dir1/Octocat.png") - result := fileExists(generatedFilePath) - expected := true - if result != expected { + fi := imageconverter.FileInfo{Path: inFP} + c.Run(fi, inF, outF) + result := fileExists(expectedOutFP) + if result != expectedGenerated { t.Errorf("Converter.Run failed.") } - fileClear(generatedFilePath) + if result { + fileClear(expectedOutFP) + } } func fileExists(path imageconverter.FilePath) bool { @@ -27,7 +75,5 @@ func fileExists(path imageconverter.FilePath) bool { } func fileClear(path imageconverter.FilePath) { - if err := os.Remove(string(path)); err != nil { - fmt.Println(err) - } + os.Remove(string(path)) } From 2d9f9695316bbaee0c7b1cc06d4a1ceecaaf6da6 Mon Sep 17 00:00:00 2001 From: kaznishi Date: Wed, 27 Jun 2018 08:51:46 +0900 Subject: [PATCH 11/13] =?UTF-8?q?Searcher=E3=81=A8Converter=E3=81=A8Facade?= =?UTF-8?q?=E3=82=92=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF=E3=82=BF=E3=83=AA?= =?UTF-8?q?=E3=83=B3=E3=82=B0=E3=81=97=E3=81=A6facade=E3=81=AE=E6=8C=AF?= =?UTF-8?q?=E3=82=8B=E8=88=9E=E3=81=84=E3=83=86=E3=82=B9=E3=83=88=E3=81=8C?= =?UTF-8?q?=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E5=AE=9F?= =?UTF-8?q?=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kadai2/kadai2-2/imageConvert.go | 4 +- kadai2/kadai2-2/imageconverter/converter.go | 4 ++ kadai2/kadai2-2/imageconverter/facade.go | 15 +++--- kadai2/kadai2-2/imageconverter/facade_test.go | 51 +++++++++++++++++++ kadai2/kadai2-2/imageconverter/searcher.go | 4 ++ 5 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 kadai2/kadai2-2/imageconverter/facade_test.go diff --git a/kadai2/kadai2-2/imageConvert.go b/kadai2/kadai2-2/imageConvert.go index e92a2e8..5de2b24 100644 --- a/kadai2/kadai2-2/imageConvert.go +++ b/kadai2/kadai2-2/imageConvert.go @@ -30,6 +30,8 @@ func main() { return } - var icFacade imageconverter.Facade + var searcher imageconverter.Searcher + var converter imageconverter.Converter + icFacade := imageconverter.Facade{Searcher: searcher, Converter: converter} icFacade.Run(targetPath, inputFormat, outputFormat) } diff --git a/kadai2/kadai2-2/imageconverter/converter.go b/kadai2/kadai2-2/imageconverter/converter.go index 003c473..7f2f4ad 100644 --- a/kadai2/kadai2-2/imageconverter/converter.go +++ b/kadai2/kadai2-2/imageconverter/converter.go @@ -9,6 +9,10 @@ import ( "regexp" ) +type ConverterInterface interface { + Run(f FileInfo, in, out Format) +} + // Converter 画像ファイル変換器 type Converter struct{} diff --git a/kadai2/kadai2-2/imageconverter/facade.go b/kadai2/kadai2-2/imageconverter/facade.go index bf3f9c8..ed1b98d 100644 --- a/kadai2/kadai2-2/imageconverter/facade.go +++ b/kadai2/kadai2-2/imageconverter/facade.go @@ -1,16 +1,15 @@ package imageconverter // Facade mainからの命令窓口 -type Facade struct{} +type Facade struct { + Searcher SearcherInterface + Converter ConverterInterface +} // Run Searcherを使ってファイル群を走査、Converterを使ってファイル群を変換処理にかける -func (Facade) Run(targetPath FilePath, in, out Format) { - - var searcher Searcher - var converter Converter - - fileInfoList := searcher.Run(FileInfo{Path: targetPath}) +func (f *Facade) Run(targetPath FilePath, in, out Format) { + fileInfoList := f.Searcher.Run(FileInfo{Path: targetPath}) for _, fileInfo := range fileInfoList { - converter.Run(fileInfo, in, out) + f.Converter.Run(fileInfo, in, out) } } diff --git a/kadai2/kadai2-2/imageconverter/facade_test.go b/kadai2/kadai2-2/imageconverter/facade_test.go new file mode 100644 index 0000000..a164914 --- /dev/null +++ b/kadai2/kadai2-2/imageconverter/facade_test.go @@ -0,0 +1,51 @@ +package imageconverter_test + +import ( + "testing" + + "github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter" +) + +var ( + calledCountSearcherRun int + calledCountConverterRun int +) + +type SearcherMock struct{} + +func (SearcherMock) Run(target imageconverter.FileInfo) []imageconverter.FileInfo { + calledCountSearcherRun += 1 + fis := []imageconverter.FileInfo{ + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/Octocat.jpeg")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/dummy_fuga.md")}, + imageconverter.FileInfo{Path: imageconverter.FilePath("../sample_dir1/dummy_hoge.txt")}, + } + return fis +} + +type ConverterMock struct{} + +func (ConverterMock) Run(f imageconverter.FileInfo, in, out imageconverter.Format) { + calledCountConverterRun += 1 + return +} + +func TestFacade_Run(t *testing.T) { + var searcher SearcherMock + var converter ConverterMock + + targetPath := imageconverter.FilePath("../sample_dir1") + inputFormat := imageconverter.Format("jpg") + outputFormat := imageconverter.Format("png") + + facade := imageconverter.Facade{Searcher: searcher, Converter: converter} + facade.Run(targetPath, inputFormat, outputFormat) + + if calledCountSearcherRun != 1 { + t.Errorf("Facade Run called count is wrong.") + } + if calledCountConverterRun != 3 { + t.Errorf("Facade Run called count is wrong.") + } + +} diff --git a/kadai2/kadai2-2/imageconverter/searcher.go b/kadai2/kadai2-2/imageconverter/searcher.go index 4d2d662..1f79b1e 100644 --- a/kadai2/kadai2-2/imageconverter/searcher.go +++ b/kadai2/kadai2-2/imageconverter/searcher.go @@ -6,6 +6,10 @@ import ( "path/filepath" ) +type SearcherInterface interface { + Run(target FileInfo) []FileInfo +} + // Searcher 対象ディレクトリファイルの検索器 type Searcher struct{} From 142d8e728bfb7b2c8f816a5c7a862ee7f4d4e01e Mon Sep 17 00:00:00 2001 From: kaznishi Date: Thu, 28 Jun 2018 07:00:40 +0900 Subject: [PATCH 12/13] =?UTF-8?q?=E5=AE=BF=E9=A1=8C2-1=E3=82=92=E6=9B=B8?= =?UTF-8?q?=E3=81=84=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kadai2/kadai2-1/kadai2-1.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/kadai2/kadai2-1/kadai2-1.md b/kadai2/kadai2-1/kadai2-1.md index e69de29..86a5160 100644 --- a/kadai2/kadai2-1/kadai2-1.md +++ b/kadai2/kadai2-1/kadai2-1.md @@ -0,0 +1,12 @@ +### io.Readerとio.Writerについて調べてみよう + +#### 標準パッケージでどのように使われているか + +様々な入出力を扱う抽象としてio.Reader,ioWriterのinterfaceが定義されている。 +io.Readerを実装した標準パッケージの構造体としては、例えばos.File(ファイルの読み込み),os.Stdin(標準入力),bytes.Buffer(メモリに蓄えた内容の読み込み),net.conn(ネットワーク通信からの読み込み)が挙げられる。 +また、io.Writerを実装した標準パッケージの構造体としては、例えばos.File(ファイルの書き込み),os.Stdout(標準出力),bytes.Buffer(メモリへの書き込み),net.conn(ネットワーク通信への送信)が挙げられる。 + +#### io.Readerとio.Writerがあることでどういう利点があるのか具体例を挙げて考えてみる + +入力元や出力先に関して、ファイルなのか、標準入力出力なのか、メモリなのか、ネットワーク通信なのか、etc...等様々あるが、それらの切り替えを簡単に行うことができる。 +具体例としては、結果を標準出力に表示していたプログラムをファイル書き出しに仕様変更するときに、os.Stdoutを使用していた箇所をos.Fileに変更する改修を行うというだけ(大枠としては。細かいところでは他にも実装が必要そうな気がする。)で済む。 \ No newline at end of file From 043c3e7660dc4750990dda874b065fa69c11d30e Mon Sep 17 00:00:00 2001 From: kaznishi Date: Thu, 28 Jun 2018 07:12:24 +0900 Subject: [PATCH 13/13] =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E3=82=AB?= =?UTF-8?q?=E3=83=90=E3=83=AC=E3=83=83=E3=82=B8=E3=82=92=E5=87=BA=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kadai2/kadai2-2/profile | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 kadai2/kadai2-2/profile diff --git a/kadai2/kadai2-2/profile b/kadai2/kadai2-2/profile new file mode 100644 index 0000000..bae2a0b --- /dev/null +++ b/kadai2/kadai2-2/profile @@ -0,0 +1,32 @@ +mode: set +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/command_validator.go:7.52,8.46 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/command_validator.go:11.2,11.14 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/command_validator.go:8.46,10.3 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:20.50,24.38 2 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:28.2,29.16 2 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:33.2,37.16 4 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:41.2,44.16 3 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:49.2,50.16 2 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:54.2,56.13 2 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:24.38,26.3 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:29.16,32.3 2 0 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:37.16,40.3 2 0 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:44.16,47.3 2 0 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:50.16,53.3 2 0 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:57.13,58.27 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/converter.go:59.13,60.33 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/facade.go:10.59,12.40 2 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/facade.go:12.40,14.3 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/file_info.go:11.34,13.2 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/file_info.go:16.37,18.2 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/format.go:7.31,9.2 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/format.go:12.44,13.20 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/format.go:14.14,15.23 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/format.go:16.10,17.12 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/searcher.go:17.49,19.97 2 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/searcher.go:25.2,25.16 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/searcher.go:29.2,29.12 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/searcher.go:19.97,20.20 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/searcher.go:23.3,23.13 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/searcher.go:20.20,22.4 1 1 +github.com/gopherdojo/dojo2/kadai2/kadai2-2/imageconverter/searcher.go:25.16,28.3 2 0