From 77c203a1b99676034f9896926d0fd0fe6c3f9bde Mon Sep 17 00:00:00 2001 From: leebeomjun Date: Thu, 23 Nov 2023 09:14:16 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8B=A8=EC=86=8D=EB=82=B4=EC=97=AD=EC=84=9C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cokr/xit/fims/cmmn/hwp/AddUtil.java | 21 +++++--- .../cokr/xit/fims/cmmn/hwp/PrintUtil.java | 45 ++++++++++++++---- .../sprt/service/bean/Sprt01ServiceBean.java | 8 ++++ .../xit/fims/sprt/web/Sprt01Controller.java | 15 +++--- src/main/resources/format/crdnList_inner.hwp | Bin 22016 -> 22528 bytes src/main/resources/format/crdnList_root.hwp | Bin 33280 -> 33280 bytes 6 files changed, 67 insertions(+), 22 deletions(-) diff --git a/src/main/java/cokr/xit/fims/cmmn/hwp/AddUtil.java b/src/main/java/cokr/xit/fims/cmmn/hwp/AddUtil.java index 48154c3a..fea10113 100644 --- a/src/main/java/cokr/xit/fims/cmmn/hwp/AddUtil.java +++ b/src/main/java/cokr/xit/fims/cmmn/hwp/AddUtil.java @@ -5,11 +5,12 @@ import kr.dogfoot.hwplib.object.HWPFile; import kr.dogfoot.hwplib.object.bodytext.ParagraphListInterface; import kr.dogfoot.hwplib.object.bodytext.control.Control; import kr.dogfoot.hwplib.object.bodytext.control.ControlType; -import kr.dogfoot.hwplib.object.bodytext.control.table.Cell; import kr.dogfoot.hwplib.object.bodytext.paragraph.Paragraph; import kr.dogfoot.hwplib.object.bodytext.paragraph.ParagraphList; +import kr.dogfoot.hwplib.tool.objectfinder.CellFinder; import kr.dogfoot.hwplib.tool.objectfinder.ControlFilter; import kr.dogfoot.hwplib.tool.paragraphadder.ParagraphAdder; +import kr.dogfoot.hwplib.tool.paragraphadder.ParagraphMerger; public class AddUtil { @@ -37,14 +38,14 @@ public class AddUtil { * @param attachHWPFile 테이블을 가져올 외부파일, baseHWPFile 기준 파일, cell 기준 파일의 테이블셀 * @return */ - public static void insertTableInCell(HWPFile attachHWPFile, HWPFile baseHWPFile, Cell cell) throws Exception { + public static void insertTableInCell(HWPFile attachHWPFile, HWPFile baseHWPFile, String cellFieldName) throws Exception { - Paragraph attachParagraph = attachHWPFile.getBodyText().getSectionList().get(0).getParagraph(0); + ParagraphList cpl = CellFinder.findAll(baseHWPFile, cellFieldName).get(0).getParagraphList(); + boolean isEmptyCell = true; - boolean isEmptyCell = true; + Paragraph attachParagraph = attachHWPFile.getBodyText().getSectionList().get(0).getParagraph(0); - ParagraphList cpl = cell.getParagraphList(); if(cpl.getParagraphCount() >= 1) { ArrayList cl = cpl.getParagraph(0).getControlList(); if(cl != null && cl.size() != 0) { @@ -71,7 +72,15 @@ public class AddUtil { cpl.deleteAllParagraphs(); } - ParagraphAdder paraAdder = new ParagraphAdder(baseHWPFile, cpl); + ParagraphAdder paraAdder = new ParagraphAdder(baseHWPFile, cpl); paraAdder.add(attachHWPFile, attachParagraph); + + if(!isEmptyCell) { + ParagraphList cpl0 = CellFinder.findAll(baseHWPFile, cellFieldName).get(0).getParagraphList(); + ParagraphMerger paraMerger = new ParagraphMerger(); + paraMerger.merge(cpl0.getParagraph(1), cpl0.getParagraph(0)); + + cpl0.deleteParagraph(1); + } } } diff --git a/src/main/java/cokr/xit/fims/cmmn/hwp/PrintUtil.java b/src/main/java/cokr/xit/fims/cmmn/hwp/PrintUtil.java index 416b5a1c..18471ce9 100644 --- a/src/main/java/cokr/xit/fims/cmmn/hwp/PrintUtil.java +++ b/src/main/java/cokr/xit/fims/cmmn/hwp/PrintUtil.java @@ -3,7 +3,6 @@ package cokr.xit.fims.cmmn.hwp; import java.io.File; import java.io.InputStream; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -16,9 +15,7 @@ import cokr.xit.foundation.UserInfo; import cokr.xit.foundation.data.DataFormat; import cokr.xit.foundation.data.DataObject; import kr.dogfoot.hwplib.object.HWPFile; -import kr.dogfoot.hwplib.object.bodytext.control.table.Cell; import kr.dogfoot.hwplib.reader.HWPReader; -import kr.dogfoot.hwplib.tool.objectfinder.CellFinder; import kr.dogfoot.hwplib.writer.HWPWriter; public class PrintUtil { @@ -113,7 +110,14 @@ public class PrintUtil { this.recordPerPartFile = 6; break; } - + case "requestForDelivery": { + this.recordPerPartFile = 7; + break; + } + case "reportOnClaims": { + this.recordPerPartFile = 7; + break; + } } } @@ -130,7 +134,18 @@ public class PrintUtil { this.attachFormatFilePath = "format/crdnList_inner.hwp"; break; } - + case "requestForDelivery": { + this.formatKorName = "교부청구서"; + this.baseFormatFilePath = "format/requestForDelivery_root.hwp"; + this.attachFormatFilePath = "format/requestForDelivery_inner.hwp"; + break; + } + case "reportOnClaims": { + this.formatKorName = "채권신고서"; + this.baseFormatFilePath = "format/reportOnClaims_root.hwp"; + this.attachFormatFilePath = "format/reportOnClaims_inner.hwp"; + break; + } } } @@ -210,6 +225,15 @@ public class PrintUtil { } baseFileEditor.set("발신", instNm); } + else if(this.formatName.equals("requestForDelivery")){ + //TODO : + //파라미터 : 문서번호,사건번호 + //체납자성명,체납자번호,차량번호,주소,교부청구금액,교부청구금액한글, + + } + else if(this.formatName.equals("reportOnClaims")){ + //TODO : + } } /**한글파일 서식에 대해 데이터 건별로 처리한다. @@ -244,13 +268,16 @@ public class PrintUtil { attachFileEditor.set("납부기한", DataFormat.yyyy_mm_dd(dataObject.string("DUDT_YMD"))); attachFileEditor.set("수납일자", DataFormat.yyyy_mm_dd(dataObject.string("RCVMT_YMD"))); } + else if(this.formatName.equals("requestForDelivery")){ + //TODO : - - ArrayList cellList = CellFinder.findAll(baseFile, "내부"); - Cell cell = cellList.get(0); + } + else if(this.formatName.equals("reportOnClaims")){ + //TODO : + } - AddUtil.insertTableInCell(attachFormatFile, baseFile, cell); + AddUtil.insertTableInCell(attachFormatFile, baseFile, "내부"); } else { diff --git a/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt01ServiceBean.java b/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt01ServiceBean.java index cdb9b26c..22c12366 100644 --- a/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt01ServiceBean.java +++ b/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt01ServiceBean.java @@ -106,6 +106,14 @@ public class Sprt01ServiceBean extends AbstractServiceBean implements Sprt01Serv } } + } else if(formatName.equals("requestForDelivery")) { + //TODO : + //query.set(); + //dataObjectList = Mapper.selectList(query); + } else if(formatName.equals("reportOnClaims")) { + //TODO : + //query.set(); + //dataObjectList = Mapper.selectList(query); } int totalDataCount = dataObjectList.size(); diff --git a/src/main/java/cokr/xit/fims/sprt/web/Sprt01Controller.java b/src/main/java/cokr/xit/fims/sprt/web/Sprt01Controller.java index 0616de20..d2d171a0 100644 --- a/src/main/java/cokr/xit/fims/sprt/web/Sprt01Controller.java +++ b/src/main/java/cokr/xit/fims/sprt/web/Sprt01Controller.java @@ -290,11 +290,11 @@ public class Sprt01Controller extends ApplicationController { */ public ModelAndView makeCrdnListFileFromHwpFormat(String privateInfoYn, String[] crdnIds) { Map result = null; - String format = "crdnList"; + PrintOption printOption = new PrintOption(); printOption.setPrivateInfoYn(privateInfoYn); - result = sprt01Service.makeFileFromHwpFormat("list", format, printOption ,crdnIds); + result = sprt01Service.makeFileFromHwpFormat("list", "crdnList", printOption ,crdnIds); ModelAndView mav = new ModelAndView("jsonView"); mav.addAllObjects(result); @@ -306,10 +306,10 @@ public class Sprt01Controller extends ApplicationController { */ public ModelAndView makeCrdnConfirmFileFromHwpFormat(String[] crdnIds) { Map result = null; - String format = "crdnConfirm"; + PrintOption printOption = new PrintOption(); - result = sprt01Service.makeFileFromHwpFormat("info", format, printOption, crdnIds); + result = sprt01Service.makeFileFromHwpFormat("info", "crdnConfirm", printOption, crdnIds); ModelAndView mav = new ModelAndView("jsonView"); mav.addAllObjects(result); @@ -334,8 +334,8 @@ public class Sprt01Controller extends ApplicationController { public ModelAndView makeRequestForDeliveryFileFromHwpFormat(PrintOption printOption, String[] crdnIds) { ModelAndView mav = new ModelAndView("jsonView"); - //TODO : 교부청구서 한글 파일 작성 - + Map result = sprt01Service.makeFileFromHwpFormat("list", "requestForDelivery", printOption, crdnIds); + mav.addAllObjects(result); return mav; } @@ -345,7 +345,8 @@ public class Sprt01Controller extends ApplicationController { public ModelAndView makeReportOnClaimsFileFromHwpFormat(PrintOption printOption, String[] crdnIds) { ModelAndView mav = new ModelAndView("jsonView"); - //TODO : 채권신고서 한글 파일 작성 + Map result = sprt01Service.makeFileFromHwpFormat("list", "reportOnClaims", printOption, crdnIds); + mav.addAllObjects(result); return mav; } diff --git a/src/main/resources/format/crdnList_inner.hwp b/src/main/resources/format/crdnList_inner.hwp index a1d23a61b2a3bf28f2590ba07b833c83f9eb8aab..f0f7c432d8b2a37f6859301c366ea3638b3f1c90 100644 GIT binary patch delta 8420 zcmcI}2~<++*SAAu^KdJ3wzBbRYMPcgH8^xlD=S4MrJP8~G)+kfk6Kx&X=!Rsc+*S` zk<@@35WA&TisS@}f|VsH0!~1Jz>D2m_xAqpyT0|k>-)}PpXb0jXYbAP?C1B}d!M)p z#ki-6cdgd%R8UY*l#5g*lgS4KWw~sta@AB?@(y(&=AkxSaYs$0(ltdzw~Sfk46Uty z-MU3S%Ab%)*~+1Q;(3)(Hjz1|+pE<6#$XKB~Rcn%`L6x%~#g>dwu8 z3D;c%%b+!j>+C`<=kIB@R*h;&vifaP3jS1bTl*b{{LWn#miPx99@|?E+3WaK=#!#A zzCz5tv0KiIYYts08fQQH`kMM>=GxrxHJq5{h~dADN?t4^nF79dU5c~eKyat(IgO##$j zfgff0yd1hdIj(zSjmBnZ`&n-w{I;gyaN?WQb?dfXM5q%AmX{y({OIuZ`5Kep%buq` zM%}+;`T9g;dDioSfWc!XR&_J?pL+)k8k+3!4vyZtLYRzA*kiF)(sGped>B+swYT#w zY5M}vE2ics2KZ$a6>cqMJ$9Rm*GRB^5HWVyGh4zjd%e+g=NrD~osM%^4z2)lOTG5y zmuSDw;Un+U4UqRWc4jg5zVYa1?bt!~*fRkB97+Ozwp@muV+zq)*8Y?GzOHW9#ea1t zHplC!-fXhF)*Q5Yg~zyM@Z`dYMX%%Rikp|6T{5%RQ)|iQRmLxteu-Wx?VdQeXiKW+ zcqo3~;uciZbE)U2MQ>Jr1iv37cmU!T9|Mi&iknMgtFJ6=j}sN{iq-ayJ&1z1ZZL?K zZtan*h>Tz2-Zaj8J*^TP|6AB91A~_;65tQnGTP#k2M}>{8xNarzd>%?aDl6M?Y%pi ztoy9LVLA1MSKr9&u{@mN%)ycC~y+d z`~lctYD#FqOeE7SYfyP9H?NZ5Ty%B8rB)^!K>4YeOj z-{n#zE$Y0UyZI3D_TpV7H{a>*`BkSvg&5>goS2C3OUPb|IC1{r4IS%sGanBgDY-JK zqLW^HV7($x^r%-S$>X?%oqfuVF54zZXcTmBjV7VT;Eyqb(CX=eH{*!H9OU>+oP$8| zyz|1v$~%@StTuKsO4eVOcxrUXCWU6$KFh2pc+E{H;=Ulf=EEhT2ak`hJ^)jVv3n-= zOvv?v+pV~!`t?R3%lYxbv`b0r^@r`v)RGHRgsDgzh;{U zR%*gadrX!n886yYZhQUc!!K>hcTex#351`SS#w%%@vQyYru^qhb-tN8ZhDBY4R$kT zdyatXH&(bV1RSc%509K**!bCr4NFr4X|`WV!6H4@3ZGLyjCq09y|npSh&Dse69&@N>^<0QJ7mg()_Md0iz z=apYvGVho*j`JTe;)RE?Bx%^i}WJ`5@0~j8=URf z`?`Tl_6?27F$wUH#e5*JM>aq6-M#Sk&R*rr=tT=C1G_CLag{y9Z_qaPxe7BvotP;5g)1vv@;)^Sh3;i zOFnuT$kYSjvsJW#c9k$KVI|#xCF|3|SAbrxpQ41<=rbb#^oPXIzS!!%;9mxQ-*pyY zvvL19sh}|Xs|j!REE_3aHFC`e{7ISB_!;6gk`s4i$kU0F^ZxkrtgO}zHOYGm=Rl;mc=<7j*jZUJj>1gRT6)io`zTkSwfvaw*@$vVv z;~#EVn)70F*!x$VO*=Z8-fdL$k5JyNx9(b;DMfi(VB&Z_;P3VzIB-!S8QgI`-=dc2 zm)2~idRJ?^v)M9bqif5KE8izKy?;C0w4hs3+n=gW+R%mUsREzhr z2vN&dU$pH);ft4e#hn-WPgtdBHMSpEy!68o^X1D=S*-rhwm@~0MZs`uZ#_cD9Enp(<%eUQZXO?Q zQWYQJzsRkxvDwwI$!eKGb);$ocAXrsQWev+{8z5_JpU~%`*X|)Ka!~Qcw2@@YYh0F zuzerrk?i{+p^#@AP`MqYEyI;3(cR-+t-Yl-!q4MrB~sSNRiEQ7tW(36K;^wbQKQ3S zrwYa4g4UC=hzJ{O>Er40$>->vu|4%Om-yurq=ne8TvlsQNITU%+jC{mEjTjQTl8Gi z!vY%fB~_I^vH%%^dCosJrv}RK?5MtpGcQ6}#!xPp3SF6mSO(=&^eeMTidh<@nd@Ak;M+*Brg>^VAo|+tv%z|6^>cY%|z!>61P64EcqCsS- zo6@9vzBvy3@O;0Y#8GgX;+Z!jxYG{wq=xlG=z0!-7zBaXfM){JZL15>9~*+vCz*4& zDoi6jQ!1jU2Ubdgex91h7LhIelx3qiFv`ZEOr+CAqA>(fUsz)ezW^UdEg77>^dxhGmSEWS-a_rsc`a2@47?Y@ zyGH^h!C;b-P&NwmpjJ>?>x4O0b5s{pC>qSJv8Aey4RO!Gj+X%b(k>dlNXiIqjfoig z@P)<0jl+*^q8F6>noWO2{2r6sa{9OXoIv$~)P ze-kR;zcFKY)y!b;7$N7Q03(lp*#JhD6GXyV{v(zw>d*2;oSH25x7b*N7~$@QF+gn2 zbf6Q&_3!K23Krdqs-isWA z3g~N6V=jh-tfGvwm-DLk`RXDH`}0WVc&Nk#&O-@)tae-fLNpD6aL0ziE}+TA-;73J z95|5}&Jcn@x0D&A_OXs&V#M^^A((Z*TxWxN>Xi{RpLtFl0K-6+5{Y=6eh3!I&G~Q( zIgT7Do^89rKuwM#^?rmvxWkJvGeYbJVk54q*Z|B3|RmVYCaDMK?6V{+(zG(R&g<)g4)p^ zjD3oyqNykjLp=DzZ2%(d#iZcq(foW79IeeJ7kpq){B&8ArUf=H^_3u#XOUm_|WUMC!JgV2}3}xcgK!C zYA#F?G8FDD!c#qa{D{%=NFudSEe#~F5Uc=&iF6t=rR@8oUXarhtd1S<(GyzLaP_tL zXIl3CglLV`XWP8eykH>>k_Z=TYF>73tpL3X;UXNUCsmNBf<8;x4xT*RpffGB7W{~j zBn<`NKKF}HI$CG%?qKnIF58&tz%#uH0<(DreP3$cHbhCot-E|id)eeHuCP;rEo*fP zj!8rc1W(QJ@K{)mX&3W@H|2xHe>}{D7JM+q3V^F^u{3&_W5ht@(E&f+Tyg%n!Zg8& zF^Jc3OTx37{nG$5%*M2A^lGpb_gCD0vLW&eax4PUA@vvoF8-|4rqYIAYXk)h__lk0 zT7ti^<|N=!5B4+s{vZB+f_3rg^uI8IEqoZrD?EOu)w{&Kw7(<`eH_Vc>(@Ohsnr~s z`xloejISgALOB4pWv}h`fcW7}mMCIxh4qtU%6Ccw{=sR3cS2)-EWqE+ z%ROwwh~)FGHWJ-TR&MX0i7R;X(35)g%4*WeeDrfO1j6VeqCspBxeXf zP7w??galw!VSZp_q&|{gnAS5*oedD!eTEY zS_m3POUBeD;~MFv!Yy(f1Z!U=U0paB3Zcvm4}d(RODS88uqs1$fT=2tGTG#?Scp9$ zAyjjJVG=H??IF2iFXejsl$>>R{gxNiMMwtVkjkTIESUc_E2d&EFbdYhipKzp zdrPBYTsgdfLO0pkEVIh@f6eHh6G{_di9&r?RfQX&i&kSU{eq&tHg&2;=kR=}7YnNd z?MxedOO_M^;2(3aSOPct1_&cL{+uJ@T$(JDRlgq_Iw2E?ha3SJpEzeZinW$iO+lRI zX8mSan*oUkwu%IZw(H)konOO0Ew+k6iPObi2E&m9U8$LDrgbuI(oy)#VT9*B-Q6A| zi(-gkI5}Ws31@emv}lHhY|+6&5P-o6tb{BO$uwH0NXw@zooNxWGMTEV4Ui>@TS0fF zxq2sbS$_qqJXQ2*iM-u@toAmChkVldtXNGKLhk@U1I^32=g;GE8VZg$%djQ&MZf{RA){G=Ua3Po_{pd#2T50#F z42+6iSla*jpDJ7boD_Dium@4DiFE8a&of0#w^b^k{+|Kye@65F3ot(_G2>jkQww~r1{&+m5@n7LQ*a^p zPZqqsA!j`vipuIoP`JH39KoG98&IJG$%9Z}tpjXF2Ud18g6fmOTm>5b+vaC|>0zw5 zA0-zY(N+fwA=4X5*7JGRC?c<5Oo#!y%9vBEma<=ca4eAoAW$!`ta3@8 zJLjUVa_YF?`q*r^&9aWBzZsC^}%;(v3%y2V3zerpEtp*WKGZi*v&i+kbvq=d!SV|=@+g^hZ z&Il&kYg8#r;l;GElU|)ZG`wg7%r5}Li~;*W1>-0hS04%X`v%Tn`Xp|aXoepV()9v5 zUJs&XVxMdLgDs(RH+=>OXVRXnAx3jNh*7*o6qJV`V34VeVw44EkV)kCP1WxeUO+L} zbYuyDB?MZ_Q;FSlf`^Fh{%jiIhhY*CTZMnD|A(_VsuyZW-hTdMC`$YVRh?b;*Ss>u z;FVx?G%f-!ciM4;OaMRleD;Z~X+T6Q*$Y+I4B|~xvf3{v!k_zU7cwFcf2L*?ECYv;4PX*f%@fEu z<>f1=Z|eU?LNM$6A`3y4&y*gFi{zS4vjr8Om^FPdH|uO75&pcn<}VGV(NUDhkhdC~ zLL9E@-Ykwe2hdG?2t)^7bRdVSPyM<8K?xSjK~t=X+jEH7rU+p@rBYbTZ@Xg6>a_m5 zzL4jzIJ4}=Po4-aBSvbPZcQ4frd=kbaUq(z(SdbXy@qf~049noM?83_G?)36-bbA) zk#*L@q$83+6_>V_j6}-I2zyHcfRdN2&xSFWDx4Tk4HnZXNAp~Z1zKJ(KbUZax>LUB zV?)LAs<)>dXG{K8H-F1l-_!^O>&=Dz(CrADLv=%r!nB^KTAd)M@U3+g&Ve>)N%}&D zXbxBcWRuWG9DciXVG&Yz&#NbbIwGX@S>nw|^RQ2i270*uRIz}{&;YY_84&AGSOLbp z1^RdOroM2%D`FG^({o_0r&#&9g!9(Wg@z$LuLq&D#$0tC9!>^PAT4ZacgHS{H*>ba zbSKZ7Hs`u)K2E`~`~0IY+;9oTGY>@gRt;~@<8#4mLrEkW=T~y43}ErOJN-EMpX;81 z@~TEk>wd0Ywb>A6EmG*Si`s%0QN7d$s?Gm&U1(LjSC~PL;RP^o?k&^`ekd7(i*TS} zv5u(eiXVmGkM0AbT-sKT=Yb)iy+t!v2AF<}*${)N!vLdXG(ezNF$a%Fy+VXq&;Ql5 zXAyYrC|NVQqvl8b^AA*%d7$kFKoEKTohEpek{tyC0YaQa$Slu?Tb9C)2anJTNB&zb zElb0zf^j<~#L4;A!9DX}e=dq|)7dT@0`_C^*mgvZ7YvznbNU;b1(JAlksifa!2iPR=K+H;!s*KKpZ$enWK&F7NE&l4iqYjTo6%n?5TfRkI z5~}>(tIarJ7u0ZnyvvLh{*%uIvYk&(WYLwxik6pc^k-IP=2rL|$CIr?$G$q7Pc&yCPI=ePUgD{3xl z3`ac59?<_CgFX3mx{sg3Hk@ngUPUtEoW2rZKSluQN!lMZQy;I_ZvJ(}L-E-$V&ROF zkw62n;@F!xa5<2=x!jMKvaTU*uItwIQ^o5W`HZDQ55OM?B*=$}V;PQ3TaD}6KB0TJ z(YWRoiydIj$Kt{;Z&23TbXB$={Kby#j8abiy_EUsu5M(UV%9;{+KIyJtI{{t(flDz z{l3 zR;QnC2m0f^aj64YA64Cx18-OTQQd@hXLQlS&;P2jO6SOpMF!hWZCt4?k=a|od} zq@mD2=6HkkfhG12KOTSBd#&}&{bP^|*Opq%#%>a=0p9Du5r;Z@7w8_9S0T|(GB`5rTa_@?F`_vxlpNMIWd(>F352?qsmZ>D^5f2y7s469Z zm2_2Qqz%F+=>^+#nF6G$@MuQ4@2N9G;g#vy28^zihHjj$$}<6)1km{9kPd|X zV9s6cUUSCT%Fl-xL#osEV`EFp3+zTO?}z;HX2g&M1{J&V&FO~kD%zG!#Z+sAwj@tpebs5_dSI6* z$n0JIsgiKLC7XOEhoURnOo2Hi1qIZ$8b#9uim>?Z1!K0-uZREIs?y%d_ow4?L;lyD SiY!rK-gLCJS;2qy9{vl^-bzCN delta 7760 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 diff --git a/src/main/resources/format/crdnList_root.hwp b/src/main/resources/format/crdnList_root.hwp index 97c7730910e07f831cde7f0d8db1980a1e2c7023..bbeb63fadcb504c3f7857ffa4a85924a482ece76 100644 GIT binary patch delta 2748 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 delta 2772 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