Office Dev Center – Changelogを見ると分かりますが、Office アドインのAPIは日々進化しています。
今回はWord JavaScript APIでどのようなことができるのか、その機能の一部を紹介したいと思います。
マニフェストファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <? xml version = "1.0" encoding = "UTF-8" ?> < OfficeApp xmlns = "http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:type = "TaskPaneApp" > < Id >2121d625-c3d7-4ec6-b21f-d07845c2835c</ Id > < Version >1.0</ Version > < ProviderName >@kinuasa</ ProviderName > < DefaultLocale >ja-jp</ DefaultLocale > < DisplayName DefaultValue = "Sample Add-in" /> < Description DefaultValue = "Sample Word Api Add-in" /> < Hosts > < Host Name = "Document" /> </ Hosts > < DefaultSettings > </ DefaultSettings > < Permissions >ReadWriteDocument</ Permissions > </ OfficeApp > |
index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <! DOCTYPE html> < html > < head > < meta charset = "UTF-8" > < meta http-equiv = "X-UA-Compatible" content = "IE=Edge" > < title >Word Api Sample</ title > < script src = "./script.js" ></ script > </ head > < body > < h4 >Word Api Sample</ h4 > < p > < input id = "btnSearch" type = "button" value = "文字列検索" > < input id = "btnInsertParagraph" type = "button" value = "段落挿入" > < input id = "btnInsertContentControl" type = "button" value = "コンテンツコントロール挿入" > < input id = "btnInsertHtml" type = "button" value = "HTML挿入" > < input id = "btnInsertFile" type = "button" value = "Word文書を末尾に挿入" > < input id = "btnInsertInlinePicture" type = "button" value = "画像挿入" > < input id = "btnSave" type = "button" value = "文書保存" > </ p > </ body > </ html > |
script.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 | /* * Word APIサンプル * * Document オブジェクト (JavaScript API for Word) * Range オブジェクト (JavaScript API for Word) */ Office.initialize = function (reason){} $( function (){ $( "#btnSearch" ).click( function (){ fncSearch(); }); $( "#btnInsertParagraph" ).click( function (){ fncInsertParagraph(); }); $( "#btnInsertContentControl" ).click( function (){ fncInsertContentControl(); }); $( "#btnInsertHtml" ).click( function (){ fncInsertHtml(); }); $( "#btnInsertFile" ).click( function (){ fncInsertFile(); }); $( "#btnInsertInlinePicture" ).click( function (){ fncInsertInlinePicture(); }); $( "#btnSave" ).click( function (){ fncSave(); }); }); //文書保存 function fncSave(){ Word.run( function (context){ context.document.save(); return context.sync() .then( function (){ console.log( "Success" ); }) . catch ( function (error){ console.log( "Error:" + JSON.stringify(error)); }); }); } /* * 文字列検索 * SearchOptions オブジェクト (JavaScript API for Word) * SearchResultCollection オブジェクト (JavaScript API for Word) */ function fncSearch(){ Word.run( function (context){ var results = context.document.body.search( "[0-9]{3,}" , {matchWildCards: true }); context.load(results); return context.sync() .then( function (){ for ( var i = 0; i < results.items.length; i++){ //ヒットした文字列を装飾 results.items[i].font.color = "#FF0000" ; //文字色 results.items[i].font.highlightColor = "#FFFF00" ; //ハイライト results.items[i].font.bold = true ; //太字 results.items[i].font.italic = true ; //斜体 if (i == results.items.length - 1){ results.items[i].select(); } } console.log( "Success" ); }) . catch ( function (error){ console.log( "Error:" + JSON.stringify(error)); }); }); } /* * 段落挿入 * Paragraphオブジェクト (JavaScript API for Word) */ function fncInsertParagraph(){ Word.run( function (context){ var range = context.document.getSelection(); var p = range.insertParagraph( "こんにちは。今日はとても良い天気です。" , Word.InsertLocation.after); p.font.color = "#FF0000" ; p.alignment = "centered" ; //中央揃え return context.sync() .then( function (){ console.log( "Success" ); }) . catch ( function (error){ console.log( "Error:" + JSON.stringify(error)); }); }); } /* * コンテンツコントロール挿入 * ContentControl オブジェクト (JavaScript API for Word) */ function fncInsertContentControl(){ Word.run( function (context){ var cc = context.document.getSelection().insertContentControl(); cc.tag = "Address" ; cc.title = "住所を入力してください:" ; cc.style = "強調太字" ; //ユーザー定義のスタイル名 cc.insertText( "沖縄県那覇市首里金城町1丁目2" , Word.InsertLocation.replace); cc.cannotEdit = true ; //編集可能かどうか cc.appearance = "boundingBox" ; //外観 return context.sync() .then( function (){ console.log( "Success" ); }) . catch ( function (error){ console.log( "Error:" + JSON.stringify(error)); }); }); } //HTML挿入 function fncInsertHtml(){ Word.run( function (context){ var range = context.document.getSelection(); range.insertHtml( "<h1>Hello world.</h1>" , Word.InsertLocation.start); return context.sync() .then( function (){ console.log( "Success" ); }) . catch ( function (error){ console.log( "Error:" + JSON.stringify(error)); }); }); } //Word文書を末尾に挿入 function fncInsertFile(){ Word.run( function (context){ context.document.body.insertFileFromBase64(getDocumentAsBase64(), Word.InsertLocation.end); return context.sync() .then( function (){ console.log( "Success" ); }) . catch ( function (error){ console.log( "Error:" + JSON.stringify(error)); }); }); } /* * 画像挿入 * InlinePicture オブジェクト (JavaScript API for Word) */ function fncInsertInlinePicture(){ Word.run( function (context){ var range = context.document.getSelection(); range.insertInlinePictureFromBase64(getImageAsBase64(), Word.InsertLocation.replace); return context.sync() .then( function (){ console.log( "Success" ); }) . catch ( function (error){ console.log( "Error:" + JSON.stringify(error)); }); }); } //PNG画像をBase64文字列として取得 function getImageAsBase64(){ var ret = "iVBORw0KGgoAAAANSUhEUgAAAHAAAABaCAYAAABg19IbAAAAAXNSR0IArs4c6QAACJ1JREFUeAHt" ; ret += "XV9oHEUYn71cYu1dD6xtY4OHUGNEK6lVkYqvIlaNUBCE1mcpiIhPxYL0QVB8Uh8s9VmbVhBLE6zg" ; ret += "o2DVoq0NtWJNfTlNTZUWLpcYmmTP79vLd9md250/u3t7c5cZmOx8szPffPP99nff7sztxWGtaRiq" ; ret += "DkDeA7kMuR+yTZ3zwBIMXYH8PeTjkKchN5PTLDWAOgTyfsh9vnpbNMcDK2DKOOT3ICOwjABEln0M" ; ret += "+UmstMl4D5wFC1+BvERMOwzC88abbQ0kD2Bo2wT5G2QgxrwJyAQmK5VK148dO8bGxsZGi8ViCc7Z" ; ret += "1CEP1Gq16uTk5NTBgwdZtVrd5jMDP05fQACPQMa45yUEr1KpjMLRAkdOMeAI4FXL5fIUB+J4DmzD" ; ret += "u81mAublLHhNdxhTQEyOHj1a5wzagwy8BLn5qDA3N7cFPjY3cw2taIAH5iEBNn/5TFnKg9AED0/w" ; ret += "4EEfNjs76/UZHBxkhULBK+vWe53sn0QeAN83nL+mpR8/QoUJwVteXvYyAYkddOuFg9iTsT0gBTC2" ; ret += "ZtsxEw9IAcSPzXw+72UsU9Ktp372mK4H8CbmN7/Ker0+4pdt2SwPOI5zxW+RlIH+xrZsngcsgOZh" ; ret += "omWRBVDLXeY1bomB5ploLRJ5wDJQ5J0uOGcB7AKQRCZaAEXe6YJzuBYaSFk9B/LPMzTuzMyMZ8/Q" ; ret += "0JB3vHKl8dgzMmIfT9EhvN8sA73LpHv/tDCwU1PhmUdyp+zplnEtA7sFqQg7pQy8+epLEV31qu/4" ; ret += "6DNhB4p5xDySKQYKO6/jk5aBXQ6+lIEy5qQ1f555JKelv1f1WAZ2ObJSBr576o9YU3xz3w6tfhTz" ; ret += "iHkk2xgodqNloNg/xp+VMlCXSXFnzDOP5Lj61ks/y8AuR1rKwMXLz6UyxQ0PfinUQzGPmEeyjYFC" ; ret += "tzHLQLF/jD8rZaCMOWnNkGceyWnp71U9loFdjqyUgUljoCqDKeYR80g2MQa6tR/Z0syHHvT9Q6+z" ; ret += "XPGxjl0GloHarq8DeB+w+vINLxOQ2mpS6iBloCqDktrDM4/kpHrT7u8uXgXgbvrUur5y9kXLQE2f" ; ret += "u7WfAz1yG3cG5KwFKQNVYmAaLKWYR8wj2bQY6M5fCGCUKzwckLMWpABmbVBW403/vcC+uvCPN9yz" ; ret += "j2xl9w5ulA9dv8XchcuBdrnC7oB8dXaBnTnf0Lt391Y2fJeC3oAGPUEKYBrsUjGJZx7JKn112/x+" ; ret += "bYGdOjfLVtzGK+fo8Nf23iNV44EHIFJy+geZM7CdRO+IumqL+AMSjH3xwyzb9/ggu297+0BcdzGQ" ; ret += "Bw8dnXPwDQN5cmvnA41kH594geCFgmO2K0kZ+M7nbyQa+/CL7yv1p5hHzCM5zRgYBh5i99TonUo2" ; ret += "uvPcDUwx+PGJSp7etcUDrb76exIEYruYuG4YGAXe2KPb2P1DBSmA9ZUqcxf9m9sOyxV2tfRDXajT" ; ret += "T2oCsR1MlDJQlUEtM9Gs4JlHsqaa0OYi8HaWi6F9+Ep3/iJUrf1MS27DDub0hf8WEumc/Ok6azcT" ; ret += "e56BaYCHYOo+PiCIWTBRykDV78Qk3bmnmEfMIzlJDEwLPA9A/gE+JP5hO3/Kgok9y8A0wavfusbq" ; ret += "S40fO/IAcgaY6gpMu5koZWBSZvmvSFGZZx7Joj5R59IED8doufvc+AC8JjQQNXxLfTuZ2HMMxBUW" ; ret += "/0M6ehPvCDEekSNbPCyp0I1/YepETESb4yYpA1VjoMwAGZMp5hHzSNaNgbg8RissaFNS8PDO052f" ; ret += "CkyPXz4LnBQIdAHxd6dos8pKUJjqnmMgP0lcZRnIx5+m+980q6/MNdU6fZtY7vbhpqxbQFv4lR9e" ; ret += "1tEpZaCMOTqDidryzCNZ1CfsXNorIa0fn6MwrNrSG29fVGxWXQni9aEc/9IM02ZAXdorIS03MNzu" ; ret += "g+qUo8BTXQmKGkfKQN33A+O+zUQxj5hHsm4MxIlGxRq8udFak/S2j34N+E62gB1ovCqIwCNbw/qp" ; ret += "1PUcA2nSors+dKhKchd+gXsY8faRTE87wcOxpQyMyyjZxPjzPPNI5tvpyHR183d9qkx0a9zue1Fv" ; ret += "973d4KEvepaBBHQSJiaJf1mAh3OUMjDufqDuLgbFPGIeyXFiIIFHxzhMVN0+ojH8x6zAwzF7noHk" ; ret += "WBETw1ZCdLaPaAw8tmMlyK+fL0sZqMskfgBVmWceyar9VdpFMTFsJaT1+U8t/qW/EiSe2bphILkh" ; ret += "jIlhKyEt3/9U2D6iMeiYfBmPNEUfpQyM7pruGYp5xDyS04iBvKUIYr7PYV9f/Ndb1npm95ZAkyTb" ; ret += "R/gVRfxmGl4UuMKi8nWNwOCagjEAatqduDk6Nsq5LXefGttH+P3SuAvTcSZlDIA880iOM6mkfeLG" ; ret += "v6Tjxum/7mKgipPS2j5SGStpG2MYSDGPmEdyO2Kg1GnO2r+TcvKbE20fScdK2MAyMMSB+NImAuf0" ; ret += "b2VYjrt9FKI69SpjGMgzj+TUZ6ygEN+4vW3kE4WWnW9iGdh5DBJZYAwDKeYR80juSAxM5NJsO1sG" ; ret += "Zuvv1EczhoE880hOfcY9ptAysMsBNYaBFPOIeSTbGCi+wiwDxf4x/qwxDOSZR7LxHuywgZaBHQYg" ; ret += "6fDGMJBiHjGPZBsDxRBbBor9Y/xZZOAS5Obye61Wu1EsFjdnbTnPPJKztsPk8QCbm5x9C8jAP/2V" ; ret += "p0+fvuSXbdkcD0xMTMBXxQNpBl+zOQJ5P1WXSqXrlUplFI7hP8FADRMe+f+DZ/9/oNihVUjlcnkK" ; ret += "Dtt8LceRgcchN34bCgrYABuePHnyW6Ds2otxvl62mJ0HEIMTJ06cDQEPMTtOL7q9BcLL2ZllR0rB" ; ret += "A5+Cjrf7VhV9B0f85mp5VbYHsz1wFsw7BNklAPFnZ89A3gT5Icj28QKcYGDCj81xyAgePj2Evis8" ; ret += "DPUHID8B+W7IzUcMKNuUvQfwZcYZyOcg4/3KNORm+h9Le8yKTAmQiQAAAABJRU5ErkJggg==" ; return ret; } //Word文書をBase64文字列として取得 function getDocumentAsBase64(){ var ret = "UEsDBBQABgAIAAAAIQBncygvlwEAACgJAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE" ; ret += "lstqwzAQRfeF/oPRtthKUiilxMmij2UbaPoBijSOTW1JSJPX33ccO6GUJDZNTDYGeWbuuTMylobj" ; ret += "dZEHS3A+Mzpm/ajHAtDSqEzPY/Y1fQsfWeBRaCVyoyFmG/BsPLq9GU43FnxA1drHLEW0T5x7mUIh" ; ret += "fGQsaIokxhUCaenm3Ar5LebAB73eA5dGI2gMsdRgo+ELJGKRY/C6pteVEwe5Z8FzlViyYiaszTMp" ; ret += "kOJ8qdUfSlgTIqrc5vg0s/6OEhg/SCgjxwF13QeNxmUKgolw+C4KyuIr4xRXRi4KqoxOyxzwaZIk" ; ret += "k7CvL9WsMxK8p5kXebSPFCLTO/9HfXjc5OAv76LSbcYDIhV0YaBWbrSwgtlnZy5+iTcaSYxBbbCL" ; ret += "3dhLN5oArTrysFNutJCCUOD6l3dQCbfkD67GLzerk/4r4Zb8Dvpvya/GdH/l+XfAbz1/4olZDl04" ; ret += "qKUbTSCdxFA9z/8StzKnkJQ5ccZ6OtndP9reHd1ldUgNW3CYnf7T7IkkfXZ/UN4KFKgDbL6954x+" ; ret += "AAAA//8DAFBLAwQUAAYACAAAACEAHpEat+8AAABOAgAACwAIAl9yZWxzLy5yZWxzIKIEAiigAAIA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKyS" ; ret += "wWrDMAxA74P9g9G9UdrBGKNOL2PQ2xjZBwhbSUwT29hq1/79PNjYAl3pYUfL0tOT0HpznEZ14JRd" ; ret += "8BqWVQ2KvQnW+V7DW/u8eACVhbylMXjWcOIMm+b2Zv3KI0kpyoOLWRWKzxoGkfiImM3AE+UqRPbl" ; ret += "pwtpIinP1GMks6OecVXX95h+M6CZMdXWakhbeweqPUW+hh26zhl+CmY/sZczLZCPwt6yXcRU6pO4" ; ret += "Mo1qKfUsGmwwLyWckWKsChrwvNHqeqO/p8WJhSwJoQmJL/t8ZlwSWv7niuYZPzbvIVm0X+FvG5xd" ; ret += "QfMBAAD//wMAUEsDBBQABgAIAAAAIQDFqrKbQAEAAD0HAAAcAAgBd29yZC9fcmVscy9kb2N1bWVu" ; ret += "dC54bWwucmVscyCiBAEooAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALSVy26DMBBF95X6" ; ret += "D8j7YiBt+lBMNlWlbFv6AQ4eHirYyJ4++PtaQSGkRVYWZjkXee5h7mA225+2Cb5Am1pJRuIwIgHI" ; ret += "XIlaloy8Zy83DyQwyKXgjZLASA+GbNPrq80rNBztIVPVnQlsF2kYqRC7J0pNXkHLTag6kPZJoXTL" ; ret += "0Za6pB3PP3gJNImiNdXTHiQ96xnsBCN6J6x/1ndwSW9VFHUOzyr/bEHijAUtlELQtiPXJSAjQx2H" ; ret += "thGh8/7xyicA2rNw8j+Ug+iE8MrwDfs3QLQJmxPJRHSB3PsEqYCLaRpDnTjTSPyug8SM75tJIqPk" ; ret += "ovAKYf5lcVScg/CKgH0DU4BD7bJfL78H7q/S6/vPXwsrF8CdT3+QQlrHSQJHxTmDaPkQnDO49Z3B" ; ret += "nyGMkgvicflFGG8kevbTS38BAAD//wMAUEsDBBQABgAIAAAAIQA9daQx7gYAAOIVAAARAAAAd29y" ; ret += "ZC9kb2N1bWVudC54bWzsWFtT20YUfu9M/4NH74ltbgVPTCZpSiYPnWFCO33IdDpClm0NtuSRBA59" ; ret += "siQw14QUyiXBCYT7pRiaQIJTiH/MItn8i56zknwBQ01oZjrT5CGWds9+55z9vnN2xa3bj+MxTx8v" ; ret += "K4IkBhn/TR/j4UVOCgliJMj8+EPHjVbGo6isGGJjksgHmX5eYW63f/3VrWQgJHG9cV5UPQAhKoFk" ; ret += "ggsyUVVNBLxehYvycVa5GRc4WVKksHqTk+JeKRwWON6blOSQt8Hn99GnhCxxvKKAv29ZsY9VGAeO" ; ret += "e1wfWkhmk7AYAZu8XJSVVf5xGcN/ZZBmb5u39TxQwycAQYYN/rNQ8fO7JCV4ESbDkhxnVXiVI944" ; ret += "K/f0Jm4AcoJVhW4hJqj9AOprcWGkINMriwEH4kYpGFwSsINxftwVcj1+7SX3HGapR6/MxyAGSVSi" ; ret += "QqJET/xT0WAy6oL0XZZEXzzm2iUT/qbraeuezUsZsJ7wHTLjMTvyyxH9vjoYQYjSinpCqPbpRhJn" ; ret += "BbHs+JO2pmJz/c1XA2g4B9Ci8FeDaHYgvEp/vFwayUTkeizfl6XeRBlNuB7aA7GnhIWt7wpYjloq" ; ret += "FaxcL5iuKJuAUo5zgQcRUZLZ7hhEBNx7gD4PZcCDVcK0Q2PulkL9+JvwJAPQ2EMPg4zP19HS2NTQ" ; ret += "yLhDnXKNwXt8mO2NqRUzFKZTxh/Z+emQRFWBFVFBBEueVdQ7isAyXpzkpJgkw1wfGwsyHR0++IcT" ; ret += "Xme1twTWLUk92OO6VGiOsEAIgVOMQ2TjkNgv96W7LNdjgyLg+Zj/pZCSAbWdGFPEGCL6FtEnT47z" ; ret += "REsTbYOktJOjl0QbJtoC0QbM9KCZzYGBNfe0sPSBaNvF1xuFiY9EWyfaE6LBw3OS0h8hivGWGJtE" ; ret += "X4EHTwn7Zw8sJvouMcDAwAdYoI/Znor5Y3N0kWiztrPKgGCWaC+JPg4uzXyGaHNgYy6MEV0rfjwi" ; ret += "Wp7o4O6IGCNEy5rHS+bRBMRUfHNE9NGTv8D4NydE8KUP09y2iQbIo6Wgib5DEXYdHH3SHFw1R+dp" ; ret += "PGsQgDUzZM0fwkIrkzrVNnF5ZYTVKYM7ayVT2F9yE5zCHHX9zE4hA6rNgy2M/7hiP7sKf4J698Ae" ; ret += "F37fsAaAw2nK+RrKAXbRmEPVGCmkCBRhTFMR5e1XlOL+czqeRjL1HDGGQXoZR2l6zkPZeucwpE8W" ; ret += "DgZAOuazYaKDq/mSEIkxS4wdUJKrlS2Xtj1aCllHClgoGWv42RlSqXw3qOUeFtBhqji0b+ugIsbq" ; ret += "VPQDGtUIMZ7hiD7pFkN1YVnjeVBljSqiGtVA3CMVpfKK/g9ZZImxjNJEe6iW9cJ8tvACcs8W17TC" ; ret += "/iKgnWqQzhR1B1uxiBsPW/5FoDXaZJo2iFe0nnOoPiRu2+2ay5XNwhzcODmGXc0WDv4EGVgDC9hW" ; ret += "hj4gmxd0hEeVGq1FtDWzR+keKEdi06e9s9VrzoO2oVz2KOPTMNIFh4x6B46Y8qC+7AKO1wCEJlsq" ; ret += "Cm3NXBnB56peWZU4dEOo18pWXhMTzBDWNnO7cHFtjG4IGI+DI2t+3y36Ly3y0hYJqtlFtvODUMQV" ; ret += "x+IaVj8cgov7eFSVecjQRgkH0zg2oZUPzjYjY6BKDaFGc4WnQ5SZCWvqCfQ25Db1BmdLR5g2fkaw" ; ret += "jtLTgxhD+nkhgxonxh+oDn2J6GvQhW3OrZmc9XYaK8Dh2dbLtpNIae0F14PTF8toXI3soefuLNHf" ; ret += "E2Odppe9MFU3YhiEHLB1r+64nROPF9gyqk+MpvjatodOvmsOz1Y0ZAwILK2RVO0m7BwfcA/IFTfm" ; ret += "zIn3tczq1rbP19B8t+l/o+2SXk9n3hTX1ukFa5WeWePm3lM4+hwqQQ22AfbPaTz1tO2Tj3lzeLP6" ; ret += "Ykevkq5GQRvQhE+NDbzAjs5RmwWqfnrwlWtpq5AdQn6hZc2nTw53qu5w5wsgkzI/2mpZL26Bcb5w" ; ret += "oNOGOWaOPMHADnesHeci6LoAe70suZRWXdSlG4Q5vEoVPYT3ApR9jtrozjkD2aPxJg3N9Y/ZLOJd" ; ret += "AOS/MWel39XTUN1Pke/EkMf9EKGkfZZOW6fg3OAUnlM7S9r7p0BwRZRnQ7z8kA/zMi9y8FUYUPsT" ; ret += "8EnF9/Ei45FpgvKDUIud40XWITuVigXf2AvCkqTWAd96ufV5+LbL4wkLslJp7nc4usjBOXu/w2mk" ; ret += "61cwSgYZv78N/5oGLuG5pbXRiTgR+Z7F/ValBIy3tTbTnRYiUaDV/43Pj6/dkqpK8fJ7jA9XzNop" ; ret += "BJnWZvpqRxhk2toa8DXSq9JXJ36QA/YMJcFyEHVTQ7M9HJK4+7KAerTTiQkir1BX8NApqBwE3dji" ; ret += "KscWCX20P/295T/Otv8NAAD//wMAUEsDBBQABgAIAAAAIQANeEnX9AEAACwHAAASAAAAd29yZC9m" ; ret += "b290bm90ZXMueG1srJTNjtsgEMfvlfoOFvcEO423u1acVds01d6qbvsALMYxWsMgwHHy9sXEH+lm" ; ret += "FTlJL9gMM7/5w8AsHneiDLZMGw4yRdE0RAGTFDIuNyn683s9uUeBsURmpATJUrRnBj0uP35Y1EkO" ; ret += "YCVYZgLHkCapFU1RYa1KMDa0YIKYqeBUg4HcTikIDHnOKcM16AzPwij0f0oDZca4hN+I3BKDWhzd" ; ret += "jaNlmtQuuAHOMS2Itmw3MKKLITF+wPenoNkVILfDWfQWJU5PCRSTbjEHLYh1U73BgujXSk0cWRHL" ; ret += "X3jJ7d5Bw7sOAymqtExaxKQX04QkBzHtp4vQY/IeQlZAK8Gk9RmxZqXTANIUXPXlEdfS3GLRQbbn" ; ret += "NrEVZedXq2h+291aHeoyAMfIb4spyoPy88QoHFGRBtFHjJHwb85OiSBcDomvOpqjw43iywCzE8Cd" ; ret += "YZch4haBzV4MT6NWm9uq/ENDpQYav432JF97VtP7LmC1t+X4BpvbxDwXRLmnLGjytJGgyUvpFLna" ; ret += "B658ga9A0LwStDzqzEGd2L1yfoYpookFjZyJZymaRN5Rualr/dmvFIXh94d4vv7aeHjTiuWkKu3p" ; ret += "ys/GtI4/fYk/e4huhj4DXi6wt7lR+bFT864yCtJyWfn+8vxWZfifRb6b7Jzgo4lZ/gUAAP//AwBQ" ; ret += "SwMEFAAGAAgAAAAhAJTFd7fFAQAAMgYAABAAAAB3b3JkL2hlYWRlcjMueG1spJTdbqMwEIXvV+o7" ; ret += "IN8nhrR0sygkWjVq1buq3X0A15hgxX+yDSRv34FAyG6kiiQ3GDPMN8c+9ixWOymCilnHtUpRNA1R" ; ret += "wBTVGVebFP398zyZo8B5ojIitGIp2jOHVsu7H4s6KTIbQLZySW1oigrvTYKxowWTxE0lp1Y7nfsp" ; ret += "1RLrPOeU4VrbDM/CKGzfjNWUOQelnoiqiEMdju7G0TJLakhugA+YFsR6thsY0cWQGP/C83PQ7AoQ" ; ret += "rHAW/Y+S57ukDVMQzLWVxMPUbrAkdluaCZAN8fyTC+73AA0fe4xOUWlV0iEmRzFNSnIQ0w19hh1T" ; ret += "95Cy1rSUTPm2IrZMgAatXMHN0R55LQ2CRQ+pvltEJUX/X22ih9vO1vrgywAcI78zU4qD8u+JUTjC" ; ret += "kQZxzBgj4d+avRJJuBoKX7U1J5sbxZcBZmeAR8cuQ8QdAru9HK5GbTa3ufxidWkGGr+N9qq2R1bT" ; ret += "9S5gdafl9AS728R8FMTAVZY0ed0obcmnAEXgfQD2Ba0DQXNL0BJ6sgnqBHp59p6iMHyO73/HP1H/" ; ret += "ac1yUgp/Emkz3mw7fPi9AFBSEZEico/wcoG7aDO2T+j4yy8AAAD//wMAUEsDBBQABgAIAAAAIQB+" ; ret += "aChlwwEAADIGAAAQAAAAd29yZC9mb290ZXIyLnhtbKSUXU+zMBTH75/E70B6vxWm+CgZM8ZF453x" ; ret += "5QPUUkZj39IW2L69BwZjusSw7YZSDud3/u2/PfO7tRRBxazjWqUomoYoYIrqjKtVij7eHyc3KHCe" ; ret += "qIwIrViKNsyhu8XFv3md5N4GkK1cUhuaosJ7k2DsaMEkcVPJqdVO535KtcQ6zzlluNY2w7MwCts3" ; ret += "YzVlzkGpB6Iq4lCHo+txtMySGpIb4BWmBbGerQdGdDQkxrf45hA0OwEEK5xFv1HycJe0YQqCubaS" ; ret += "eJjaFZbEfpVmAmRDPP/kgvsNQMPrHqNTVFqVdIjJTkyTkmzFdEOfYcfU3aYsNS0lU76tiC0ToEEr" ; ret += "V3Czs0eeSoNg0UOqvxZRSdH/V5vo6ryztdz6MgDHyO/MlGKr/G9iFI5wpEHsMsZI+FmzVyIJV0Ph" ; ret += "k7Zmb3Oj+DjA7ABw7dhxiLhDYLeRw9Wozeo8l5+sLs1A4+fRntXXjtV0vSNY3WnZP8HuPDFvBTFw" ; ret += "lSVNnldKW/IpQBF4H4B9QetA0NwStICebII6gV6evaYoDB/jy/v4P+o/LVlOSuH3Im3Gi22HN78R" ; ret += "AEoqIlJEYoQXc9xFm7F9QsdffAMAAP//AwBQSwMEFAAGAAgAAAAhAH5oKGXDAQAAMgYAABAAAAB3" ; ret += "b3JkL2Zvb3RlcjEueG1spJRdT7MwFMfvn8TvQHq/Fab4KBkzxkXjnfHlA9RSRmPf0hbYvr0HBmO6" ; ret += "xLDthlIO53f+7b8987u1FEHFrONapSiahihgiuqMq1WKPt4fJzcocJ6ojAitWIo2zKG7xcW/eZ3k" ; ret += "3gaQrVxSG5qiwnuTYOxowSRxU8mp1U7nfkq1xDrPOWW41jbDszAK2zdjNWXOQakHoiriUIej63G0" ; ret += "zJIakhvgFaYFsZ6tB0Z0NCTGt/jmEDQ7AQQrnEW/UfJwl7RhCoK5tpJ4mNoVlsR+lWYCZEM8/+SC" ; ret += "+w1Aw+seo1NUWpV0iMlOTJOSbMV0Q59hx9Tdpiw1LSVTvq2ILROgQStXcLOzR55Kg2DRQ6q/FlFJ" ; ret += "0f9Xm+jqvLO13PoyAMfI78yUYqv8b2IUjnCkQewyxkj4WbNXIglXQ+GTtmZvc6P4OMDsAHDt2HGI" ; ret += "uENgt5HD1ajN6jyXn6wuzUDj59Ge1deO1XS9I1jdadk/we48MW8FMXCVJU2eV0pb8ilAEXgfgH1B" ; ret += "60DQ3BK0gJ5sgjqBXp69pigMH+PL+/g/6j8tWU5K4fcibcaLbYc3vxEASioiUkRihBdz3EWbsX1C" ; ret += "x198AwAA//8DAFBLAwQUAAYACAAAACEAfmgoZcMBAAAyBgAAEAAAAHdvcmQvZm9vdGVyMy54bWyk" ; ret += "lF1PszAUx++fxO9Aer8VpvgoGTPGReOd8eUD1FJGY9/SFti+vQcGY7rEsO2GUg7nd/7tvz3zu7UU" ; ret += "QcWs41qlKJqGKGCK6oyrVYo+3h8nNyhwnqiMCK1YijbMobvFxb95neTeBpCtXFIbmqLCe5Ng7GjB" ; ret += "JHFTyanVTud+SrXEOs85ZbjWNsOzMArbN2M1Zc5BqQeiKuJQh6PrcbTMkhqSG+AVpgWxnq0HRnQ0" ; ret += "JMa3+OYQNDsBBCucRb9R8nCXtGEKgrm2kniY2hWWxH6VZgJkQzz/5IL7DUDD6x6jU1RalXSIyU5M" ; ret += "k5JsxXRDn2HH1N2mLDUtJVO+rYgtE6BBK1dws7NHnkqDYNFDqr8WUUnR/1eb6Oq8s7Xc+jIAx8jv" ; ret += "zJRiq/xvYhSOcKRB7DLGSPhZs1ciCVdD4ZO2Zm9zo/g4wOwAcO3YcYi4Q2C3kcPVqM3qPJefrC7N" ; ret += "QOPn0Z7V147VdL0jWN1p2T/B7jwxbwUxcJUlTZ5XSlvyKUAReB+AfUHrQNDcErSAnmyCOoFenr2m" ; ret += "KAwf48v7+D/qPy1ZTkrh9yJtxotthze/EQBKKiJSRGKEF3PcRZuxfULHX3wDAAD//wMAUEsDBBQA" ; ret += "BgAIAAAAIQCUxXe3xQEAADIGAAAQAAAAd29yZC9oZWFkZXIxLnhtbKSU3W6jMBCF71fqOyDfJ4a0" ; ret += "dLMoJFo1atW7qt19ANeYYMV/sg0kb9+BQMhupIokNxgzzDfHPvYsVjspgopZx7VKUTQNUcAU1RlX" ; ret += "mxT9/fM8maPAeaIyIrRiKdozh1bLux+LOikyG0C2ckltaIoK702CsaMFk8RNJadWO537KdUS6zzn" ; ret += "lOFa2wzPwihs34zVlDkHpZ6IqohDHY7uxtEyS2pIboAPmBbEerYbGNHFkBj/wvNz0OwKEKxwFv2P" ; ret += "kue7pA1TEMy1lcTD1G6wJHZbmgmQDfH8kwvu9wANH3uMTlFpVdIhJkcxTUpyENMNfYYdU/eQsta0" ; ret += "lEz5tiK2TIAGrVzBzdEeeS0NgkUPqb5bRCVF/19toofbztb64MsAHCO/M1OKg/LviVE4wpEGccwY" ; ret += "I+Hfmr0SSbgaCl+1NSebG8WXAWZngEfHLkPEHQK7vRyuRm02t7n8YnVpBhq/jfaqtkdW0/UuYHWn" ; ret += "5fQEu9vEfBTEwFWWNHndKG3JpwBF4H0A9gWtA0FzS9ASerIJ6gR6efaeojB8ju9/xz9R/2nNclIK" ; ret += "fxJpM95sO3z4vQBQUhGRInKP8HKBu2gztk/o+MsvAAAA//8DAFBLAwQUAAYACAAAACEAlMV3t8UB" ; ret += "AAAyBgAAEAAAAHdvcmQvaGVhZGVyMi54bWyklN1uozAQhe9X6jsg3yeGtHSzKCRaNWrVu6rdfQDX" ; ret += "mGDFf7INJG/fgUDIbqSKJDcYM8w3xz72LFY7KYKKWce1SlE0DVHAFNUZV5sU/f3zPJmjwHmiMiK0" ; ret += "YinaM4dWy7sfizopMhtAtnJJbWiKCu9NgrGjBZPETSWnVjud+ynVEus855ThWtsMz8IobN+M1ZQ5" ; ret += "B6WeiKqIQx2O7sbRMktqSG6AD5gWxHq2GxjRxZAY/8Lzc9DsChCscBb9j5Lnu6QNUxDMtZXEw9Ru" ; ret += "sCR2W5oJkA3x/JML7vcADR97jE5RaVXSISZHMU1KchDTDX2GHVP3kLLWtJRM+bYitkyABq1cwc3R" ; ret += "HnktDYJFD6m+W0QlRf9fbaKH287W+uDLABwjvzNTioPy74lROMKRBnHMGCPh35q9Ekm4GgpftTUn" ; ret += "mxvFlwFmZ4BHxy5DxB0Cu70crkZtNre5/GJ1aQYav432qrZHVtP1LmB1p+X0BLvbxHwUxMBVljR5" ; ret += "3ShtyacAReB9APYFrQNBc0vQEnqyCeoEenn2nqIwfI7vf8c/Uf9pzXJSCn8SaTPebDt8+L0AUFIR" ; ret += "kSJyj/BygbtoM7ZP6PjLLwAAAP//AwBQSwMEFAAGAAgAAAAhAGbCYEz0AQAAJgcAABEAAAB3b3Jk" ; ret += "L2VuZG5vdGVzLnhtbKyUS27bMBCG9wV6B4F7m5JrpYlgOUjrusiuaNoDMBRlEREfICnLvn1HtB5p" ; ret += "HBiynQ0lDme++ckhZ3G/E2WwZcZyJVMUTUMUMElVxuUmRX//rCe3KLCOyIyUSrIU7ZlF98vPnxZ1" ; ret += "wmQmlWM2AIS0Sa1pigrndIKxpQUTxE4Fp0ZZlbspVQKrPOeU4VqZDM/CKPR/2ijKrIV834ncEota" ; ret += "HN2No2WG1BDcAOeYFsQ4thsY0dmQGN/h22PQ7AIQ7HAWvUWJ41NSmklYzJURxMHUbLAg5qXSEyBr" ; ret += "4vgzL7nbAzS86TAqRZWRSYuY9GKakOQgpv10EWZM3kPIStFKMOl8RmxYCRqUtAXXfXnEpTRYLDrI" ; ret += "9tQmtqLs/Godza+7W6tDXQbgGPltMUV5UH6aGIUjKtIg+ogxEv7P2SkRhMsh8UVH8+pwo/g8wOwI" ; ret += "cGPZeYi4RWC7F8PTqPXmuir/NKrSA41fR3uULz2raX1nsNrb8voG2+vEPBVEw1MWNHncSGXIcwmK" ; ret += "oPYBlC/wFQiaV4KWQ2MO6sTtNbhZpokhThkEJp6laBJ5Pw1TaPzZ7xSF4Y+7eL7+1nh404rlpCrd" ; ret += "8cqvxrSOvzzEXz3ENEOfAS8X2Ntg1H5sxbyniyrpuKx8c3l6qzH8YInvJjshd/i3y38AAAD//wMA" ; ret += "UEsDBBQABgAIAAAAIQCkFlSY3QYAANcgAAAVAAAAd29yZC90aGVtZS90aGVtZTEueG1s7FlbaxtH" ; ret += "FH4v9D8s+67otquLiRyklRQnsRMTKyl5HK9Gu2PN7oiZkR0RAiWGQl8KhbT0oSl960MpDTTQUAr9" ; ret += "MYaENv0RnZmVtDvSbJzENoRiC6y5fOfMN+ecOXO0e/Xawwhbh5AyROKWXb5Ssi0Y+2SI4qBl3xv0" ; ret += "Cw3bYhzEQ4BJDFv2DDL72uann1wFGzyEEbSEfMw2QMsOOZ9sFIvMF8OAXSETGIu5EaER4KJLg+KQ" ; ret += "giOhN8LFSqlUK0YAxbYVg0iovTMaIR9aJ8dfnBz/eXL8g725WKCHxb+YMzngY7on1UNNSmGH47L8" ; ret += "YjPmYWodAtyyxVpDcjSAD7ltYcC4mGjZJfVnFzevFpdCmOfIZuT66m8uNxcYjitKjgb7S0HHcZ1a" ; ret += "e6lfATBfx/XqvVqvttSnAMD3xU4TLlms22l2uu4cmwElTYPubr1bLWv4jP7qGr7tyo+GV6Ck6azh" ; ret += "+30vtWEGlDRdg03qFc/R8AqUNGtr+Hqp3XXqGl6BQozi8Rq65Naq3mK3S8iI4C0jvOk6/XplDk9R" ; ret += "xUx0JfIxz4u1CBwQ2hcA5VzAUWzx2QSOgC9wr16+PHny4uTJ7yfHxydPfrW2URCKAJyAmDAxXaqU" ; ret += "+qWq+C8/jmopy4ANCDJakiGfrQ1JXhbzKZrwln1TaLVPXXtdbgvEQVbuzU9f//vsc+uf33588/Qb" ; ret += "M55l8a9/+fL1H3+9TT3XaH37/PWL56++++rvn58a4G0K9rPwAYogs27DI+suicQGDQvAffp+EoMQ" ; ret += "oKxEOw4YiIGUMaB7PNTQt2cAAwOuA3U73qcibZiA16cHGuG9kE45MgBvhZEG3CEEdwg17umWXCtr" ; ret += "hWkcmBen0yzuLgCHprW9FS/3phMR/8ik0guhRnMXC5eDAMaQW3KOjCE0iD1ASLPrDvIpYWTErQfI" ; ret += "6gBkNMkA7WvRlAptoUj4ZWYiKPyt2WbnvtUh2KS+Cw91pDgbAJtUQqyZ8TqYchAZGYMIZ5HbgIcm" ; ret += "knsz6msGZ1x4OoCYWL0hZMwkc4fONLq3gMhfRrfv4FmkIylHYxNyGxCSRXbJ2AtBNDFyRnGYxd5g" ; ret += "YxGiwNol3EiC6CdE9oUfQJzr7vsIau4+/WzfE2nIHCByZkpNRwIS/TzO8AhAk/I2jbQU26bIGB2d" ; ret += "aaCF9jaEGByBIYTWvRsmPJloNk9J3wxFVtmCJtvcBHqsyn4MGbRUkWNwLGJayO7BgOTw2ZmtJJ4Z" ; ret += "iCNA8zTfHush09un4jCa4hX7Yy2VIioPrZnEHRZp+8vVuhsCLaxkn5njdUY1/73LGRMyBx8gA99b" ; ret += "RiT2d7bNAGBtgTRgBgBZ26Z0K0Q096ci8jgpsalRbqQf2tQNxZXiJ0LxWyshcee/+v7ZSvXjXlz1" ; ret += "M19vHXs+FY8ZeJZaJy+drFY4ebjVusYjdIg+/rKmC6bxLhQ3iQF6WdVcVjX/+6om7zxf1jKXtcxl" ; ret += "LWMWuYBaJi1f1MOgxSMfpSXKff4zQhjv8RmG20wVPkyc/WFfDKqOElo+bpqEojlfTsMFFKi2RQn/" ; ret += "DPFwLwQTsUxZrRCwueqAWRPCROGkho265QSeRjtkmIyWy4snnEIA8HRcFF6LcVGo8WS0Vk8f5S3V" ; ret += "q16gHrkuCEjZ9yGRWUwnUTWQqC8GTyGhdnYuLJoGFg2pPpeF+pp7RVxOFpAPyF0nYSTCTYT0UPop" ; ret += "kV9499w9nWdMfdsVw/aakuv5eFojkQk3nUQmDENxeawOn7Ovm6lLNXrSFOs06o2L8LVMIiu5Acd6" ; ret += "zzoSZ67qCjU+mLTskfjRJJrRROhjMlMBHMQt2+dzQ39IZplQxruAhQlMTSX7jxCH1MIoErGedQOO" ; ret += "U27lSl3u8SMl1yx9fJZTX1knw9EI+jxnJO2KuUSJcfaMYNkhU0F6LxweWft4Su8CYSi3XpYGHCLG" ; ret += "l9YcIpoJ7tSKK+lqfhS1Ny/pEQV4EoL5jZJN5glctZd0MvtQTFd3pffnm9kPpJPOfOueLiQnMkkz" ; ret += "5wKRt6Y5f1zcJZ9hleZ9jVWSuldzXXOR6/JuibNfCBlq6WIaNcnYQC0d1amdY0GQWW4Zmnl3xHnf" ; ret += "BqtRKy+IRV2pemuvuMn+gYj8rqhWp5gzRVX8aqHAW7ycTDKBGl1kl4fcmlLUsh+V3LbjVVyvUGq4" ; ret += "vYJTdUqFhtuuFtquWy333HKp26k8FkbhYVR2k7X74sc+ns3f4qvxtTf50aLUvuKTqEhUHVxUwupN" ; ret += "frliepM/kPO2hYRlHtUq/Wa12akVmtV2v+B0O41C06t1Ct2aV+/2u57baPYf29ahAjvtqufUeo1C" ; ret += "rex5BadWkvQbzULdqVTaTr3d6Dntx3Nbi50vvhfmVbw2/wMAAP//AwBQSwMEFAAGAAgAAAAhAEM7" ; ret += "jD20BAAA0QwAABEAAAB3b3JkL3NldHRpbmdzLnhtbMRXW1PbOBR+35n9Dxk/NzgJMVAPoUMaUmCS" ; ret += "LYPD7rNsn8QqungkORd+/R5Jdi6Qdmh3OvsC8vnOXeeiXH5ac9ZagtJUikHQPekELRCZzKlYDIKn" ; ret += "2bh9EbS0ISInTAoYBBvQwaerP/+4XMUajEE23UIVQsc8GwSFMWUchjorgBN9IksQCM6l4sTgp1qE" ; ret += "nKjnqmxnkpfE0JQyajZhr9M5C2o1chBUSsS1ijanmZJazo0VieV8TjOo/zUS6j12vchIZhUHYZzF" ; ret += "UAFDH6TQBS11o43/qjYEi0bJ8kdBLDlr+FbdzjvCXUmVbyXe454VKJXMQGu8IM4aB6nYGe6/UbS1" ; ret += "fYK26xCdKhTvdtxp3/Po5xT03ig40/BzKqJaRag3HNaNIs3ekxIPTWiqiPIFV+eDZ/HdQkhFUobu" ; ret += "YF5aGFrLeRdcYZW/SMlbq7gEleFVY4t0OkFoAQVcLuEBW0cKwu6Et4bltIeOiIFrkc8oB0dN0X8U" ; ret += "GMm/pEkqpWQl8lsgSPsuPJbS1HAOc1IxMyNpYmSJTi0Jxn7Rrx3KqS4Z2dxKRV+kMISNFFnh/X9R" ; ret += "NL/BFt80Eof8f4MyNPs+d89zZwVRJENXkpJkyPcZTSjJGi7b0Arr7aESmalcHrxckaukICWMvPP6" ; ret += "6lLG2hLqaHRrGcMaEws5NThrSppzskaznf5HvIBlbBBN5bpFBQ6cQRCdXESl+XByjn/2ztZY+Eoz" ; ret += "Uo7ZX8VzzKnAtD6o/S8MheaDoN31jr8iu6SFr2VB5G8+Xuk5pDZqDgT9NLQnjcmFsVRPE18QhBGR" ; ret += "QYL5ZjDcGBw5VepP/9DcFP4ebblMgCxhSLJnzYguru2wdmDFZopQZi/NExz3zbrEkZ4UdG4eweAA" ; ret += "chDJv1XaTKiAW6CLwtyJme0Kr0fD+GZCNrIyvhycy4lfARibIBx8FWzH+lTmOKNRVNH397kVcAXV" ; ret += "jeq6O2oIe0thoYJzMDEbhkkTJqEvtt3uMQqKGn0V/roHP3IAhLX8FQfNbFPCGAhmEVfj7zHm7mzM" ; ret += "aDmlOBTUnchxFP02Y3Q+B4UGKA6vKbYMVXLl8uwn1X+1G+7XO747cteS9vCIrbWdUZ3x2Wm/d1rP" ; ret += "WkR3SKfTi4b9Y8jNx6g/Hh5DxtHpdXR+FNnaCbf+8Nhuc9uc/mSLq8W9xGfCU0VJa2r3fWg5UvU8" ; ret += "pKLBU8BNAPtIUqUN2G57QHPC2BgHagO4ucDdTMZJ5c5sStRip7fmUEepOPLut7rsogL1BddH6dGV" ; ret += "IqUvmoal2/dbg8dUYMfzhq6rNGmkBG7KPQh30delcnnapWcVG7x813wT4orI8YJoPyX22oFoc60p" ; ret += "GQTfSPv+oa47phJbMzAlZelLL110BwGzQ6drxQx+5fhSdB/poldjPYf1POY+SGaDRe76sKP1Gtoe" ; ret += "32lDO93R+g2tv6NFDS3a0c4a2pmlFdj0ilHxjF3QHC19LhmTK8hvd/gbkk+C21T/y1KsCcwN8wND" ; ret += "FrOWykPzOTGkad4DYdcyrwKxz5SMYnknG57u3gcnPmpGNQ6cEp8SRqoG++Cwbh93U3aHnYknRz8/" ; ret += "H52Prm98P3cj9wQxuM6yZyyaR5gPiYbc923zW+TqXwAAAP//AwBQSwMEFAAGAAgAAAAhAMbJqcoB" ; ret += "DAAAi3QAAA8AAAB3b3JkL3N0eWxlcy54bWzsnc1y3LgRx++pyjuw5rR7kEffsl0rb8myFSmxbO2O" ; ret += "HJ8xJEYDiyS4JMeSckrFhzxBPl4ib5CqPIwreY4AIDjDURMcNtjRKSdpSPaPILr/DTRIzvzw430S" ; ret += "B194XgiZHo92nm2PAp6GMhLpzfHo4/XZ1vNRUJQsjVgsU348euDF6MdXv/7VD3cvi/Ih5kWgAGnx" ; ret += "MgmPR/OyzF6Ox0U45wkrnsmMp2rnTOYJK9XH/GacsPx2kW2FMslYKaYiFuXDeHd7+3BkMXkfipzN" ; ret += "RMjfyHCR8LQ09uOcx4oo02IusqKm3fWh3ck8ynIZ8qJQF53EFS9hIl1idvYBKBFhLgs5K5+pi7Et" ; ret += "MihlvrNt/kviFeAAB9gFgMOC4xAHFjEuHhJ+PwqS8OXFTSpzNo0VSV1SoFoVGPDolfJmJMM3fMYW" ; ret += "cVnoj/lVbj/aT+bPmUzLIrh7yYpQiGvVCoVKhKKen6SFGKk9nBXlSSFYc+dbu03vn+sDWy3Domxs" ; ret += "fi0iMRrrk97yPFW7v7D4eLRbbSr+sNywU2851e2qttmjYpbe1Nt4uvVx0mzf8egz2/rtld40Vac6" ; ret += "HrF8a3KiDcf2cqu/jU7Ilp+qox71mIo/FY2TShRqL5+9k+Etjyal2nE82tanUhs/XlzlQuYq8I9H" ; ret += "L17YjROeiHMRRTxtHJjORcQ/zXn6seDRavtPZyZ47YZQLlL1/97RrvFiXERv70OeaSmovSnTHfpe" ; ret += "G8T66IVYndyY/1LDbD+22s850/kg2HmMMM1HIXa1RdG42nbm4tG1m6NQJ9p7qhPtP9WJDp7qRIdP" ; ret += "daKjpzrR86c6kcH8L08k0ojfV0KEpwHUTRyHGtEch9jQHIeW0ByHVNAchxLQHEegozmOOEZzHGGK" ; ret += "4JQydEVhI9j3HNHezd08RvhxNw8JftzNI4Afd3PC9+Nuzu9+3M3p3I+7OXv7cTcnazy3mmoFF0pm" ; ret += "aTlYZTMpy1SWPCj5/XAaSxXLFEk0PD3o8ZzkIgkwVWazA/FgWsjM580RYkTqP56XuhwL5CyYiZtF" ; ret += "rmrroQ3n6Rceqyo3YFGkeITAnJeL3NEjPjGd8xnPeRpyysCmg8Yi5UG6SKYEsZmxGzIWTyPi7quJ" ; ret += "JElhGdBsUc61SARBUCcszOXwpklGlh/eiWJ4X2lI8HoRx5yI9Z4mxAxreG1gMMNLA4MZXhkYzPDC" ; ret += "oOEzqi6yNKKesjSiDrM0on6r4pOq3yyNqN8sjajfLG14v12LMjYpvjnr2Om/dncaS72sPbgdE3GT" ; ret += "MjUBGD7c2DXT4Irl7CZn2TzQq8rt2OY1Y8/zWkYPwTXFmLYkUc3rTYicqqsW6WJ4h67RqMS15BHJ" ; ret += "a8kjEtiSN1xil2qarCdo5zT1zGQxLVtFa0i9RDth8aKa0A5XGyuHR9hKAGciL8hk0I4liOD3ejqr" ; ret += "3UmR+VatHN6wFWu4rB5nJdLmWSRBK2MZ3tKk4fOHjOeqLLsdTDqTcSzveERHnJS5rGKtKfld45Je" ; ret += "kn+bZHNWCFMrrSH6D/X1DfHgkmWDL+gqZiKl8dvbrYSJOKCbQZxfX74LrmWmy0zdMTTA17IsZULG" ; ret += "tCuB333i0+9pGniiiuD0gehqT4iWhwzsVBAMMhVJRkQkNc0UqSAZQw3vd/xhKlke0dCucl49g1Jy" ; ret += "IuKEJVk16SDQlsqLdyr/EMyGDO/3LBd6XYhKVNcksMayYbGYfubh8FT3XgYkK0MfFqVZfzRTXWNN" ; ret += "hxs+TVjDDZ8iGG+q4UHHL8HFruGGX+wajupiT2NWFMJ5C9WbR3W5NY/6eocXf5YnY5nPFjFdB9ZA" ; ret += "sh6sgWRdKONFkhaUV2x4hBdseNTXSxgyhkewJGd4v8lFROYMA6PyhIFRucHAqHxgYKQOGP6ETgM2" ; ret += "/DGdBmz4szoVjGgK0IBRxRnp8E90l6cBo4ozA6OKMwOjijMDo4qzvTcBn83UJJhuiGkgqWKugaQb" ; ret += "aNKSJ5nMWf5AhHwb8xtGsEBa0a5yOdMvJ8i0eoibAKnXqGPCyXaFo3LyJz4la5pmUbaLYEWUxbGU" ; ret += "RGtrqwHHWK4/u7bJzLyGMbgJVzEL+VzGEc8d1+S2VfXyJGOhXaYHt/t6LXu+EzfzMpjMl6v9Tczh" ; ret += "9kbLumBfM9t8wrY+P6zfPGkzu+SRWCR1Q+HLFId7/Y1NRK8Z7282Xs0k1iwPelrCcx5utlzNktcs" ; ret += "j3pawnM+72lpdLpm2aWHNyy/bQ2Eo674WdZ4juA76oqipXHrabsCaWnZFoJHXVG0JpXgJAz13QLo" ; ret += "nX6acdv3E4/bHqMiNwUjJzelt67ciC6B/cy/CD2yY5KmOd/y6QmQ980kulfm/Gkhq3X7tRtO/V/q" ; ret += "ulATp7TgQStnr/+Nq7Us4+7H3unGjeidd9yI3gnIjeiViZzmqJTkpvTOTW5E7yTlRqCzFRwRcNkK" ; ret += "2uOyFbT3yVaQ4pOtBswC3Ije0wE3Ai1UiEALdcBMwY1ACRWYewkVUtBChQi0UCECLVQ4AcMJFdrj" ; ret += "hArtfYQKKT5ChRS0UCECLVSIQAsVItBChQi0UD3n9k5zL6FCClqoEIEWKkSghWrmiwOECu1xQoX2" ; ret += "PkKFFB+hQgpaqBCBFipEoIUKEWihQgRaqBCBEiow9xIqpKCFChFooUIEWqjVq4b+QoX2OKFCex+h" ; ret += "QoqPUCEFLVSIQAsVItBChQi0UCECLVSIQAkVmHsJFVLQQoUItFAhAi1Uc7NwgFChPU6o0N5HqJDi" ; ret += "I1RIQQsVItBChQi0UCECLVSIQAsVIlBCBeZeQoUUtFAhAi1UiOiKT3uL0vWY/Q5+1dP5xH7/W1e2" ; ret += "UT83X+Vuovb6o+pWuVn930V4LeVt0Pri4Z6pN/pBxDQW0ixRO26rN7nmkQjUjc8Pp91v+DTpA790" ; ret += "yb4LYe6ZAvh+X0uwprLfFfJNS1Dk7XdFetMSzDr3u7Jv0xIMg/tdSdfosn4oRQ1HwLgrzTSMdxzm" ; ret += "Xdm6YQ67uCtHNwxhD3dl5oYh7OCufNwwPAh0cn5sfdCznw6Xz5cCQlc4NghHbkJXWEJf1ekYCqOv" ; ret += "09yEvt5zE/q60U1A+dOJwTvWjUJ72I3yczWUGdbV/kJ1E7CuhgQvVwOMv6shytvVEOXnapgYsa6G" ; ret += "BKyr/ZOzm+DlaoDxdzVEebsaovxcDYcyrKshAetqSMC6euCA7MT4uxqivF0NUX6uhpM7rKshAetq" ; ret += "SMC6GhK8XA0w/q6GKG9XQ5Sfq0GVjHY1JGBdDQlYV0OCl6sBxt/VEOXtaojqcrVZRVlzNcrDDXPc" ; ret += "JKxhiBuQG4a45Nww9KiWGtae1VKD4FktQV/VPsdVS02nuQl9vecm9HWjm4DypxODd6wbhfawG+Xn" ; ret += "aly11OZqf6G6CVhX46olp6tx1VKnq3HVUqercdWS29W4aqnN1bhqqc3V/snZTfByNa5a6nQ1rlrq" ; ret += "dDWuWnK7GlcttbkaVy21uRpXLbW5euCA7MT4uxpXLXW6GlctuV2Nq5baXI2rltpcjauW2lyNq5ac" ; ret += "rsZVS52uxlVLna7GVUtuV+OqpTZX46qlNlfjqqU2V+OqJaercdVSp6tx1VKnq3HV0qUyEZivgBrf" ; ret += "rf2Qkwab3zlTx5cPGdff5d148SaqvsvUAs2BF4rEzG8x6RYE9ven7E8wmYbae47m/6z6Ya07Eck7" ; ret += "/SJyLuPaxHb257DeMJXl3DbRmI3tGWEbw7lqZGi/vsnVxm3QSMc3s5pmrHq8Ptp6cNWt1XFrnVq1" ; ret += "1tHKUnu4q4U7jm6sYsPVrhc22Dc1TDVjGlfdr/65SCMFuLM/i1U1MLpnFUrtP+VxfMmqo2XmPjTm" ; ret += "s7Lau7NtXs1/tH9afcuc0z436cgJGK83pvrYHQzV987b++Surq5+PWy9q80DG0N72d2uNSGtWrIH" ; ret += "WmJ/Z6LqPqawH7S+za6600V6u9xk73C7m9wSCXkhtPsr3W2fHeydHNi0bQWqYtXkAvW3Pk5no0ph" ; ret += "mSxUjt2tE1HjGOPN5SHPD7ZN47TXLK9IWXYtzfJQU/ZIiYeLQgWVyVjAs/ugP799/fu3r1+/ff3j" ; ret += "t6//DL77z1///O9//O379u6tE36zf+2zB+7+dXUmOhQOQNPtb4X0DQU7eP8/FKr+PGwJhb/oUPjT" ; ret += "v/xCwT4SMiQU6v+KV/8FAAD//wMAUEsDBBQABgAIAAAAIQCTdtZJGAEAAEACAAAUAAAAd29yZC93" ; ret += "ZWJTZXR0aW5ncy54bWyU0cFKAzEQBuC74DuE3Ntsiy2ydFsQqXgRQX2ANJ1tg5lMyKRu69M7rlUR" ; ret += "L+0tk2Q+5mdmiz0G9QaZPcVGj4aVVhAdrX3cNPrleTm41oqLjWsbKEKjD8B6Mb+8mHV1B6snKEV+" ; ret += "shIlco2u0dtSUm0Muy2g5SEliPLYUkZbpMwbgza/7tLAESZb/MoHXw5mXFVTfWTyKQq1rXdwS26H" ; ret += "EEvfbzIEESny1if+1rpTtI7yOmVywCx5MHx5aH38YUZX/yD0LhNTW4YS5jhRT0n7qOpPGH6ByXnA" ; ret += "+B8wZTiPmBwJwweEvVbo6vtNpGxXQSSJpGQq1cN6LiulVDz6d1hSvsnUMWTzeW1DoO7x4U4K82fv" ; ret += "8w8AAAD//wMAUEsDBBQABgAIAAAAIQBeV3f+XQEAALsCAAARAA0BZG9jUHJvcHMvY29yZS54bWwg" ; ret += "ogkBKKAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJxSXUvDMBR9F/wPJe9t0g2H" ; ret += "lLYDlT05EJwovsXkbotrPkgyu/57s2Z2q/gk9CH3nnNPzrlpOT/IJvkC64RWFcozghJQTHOhNhV6" ; ret += "WS3SW5Q4TxWnjVZQoQ4cmtfXVyUzBdMWnqw2YL0AlwQl5QpmKrT13hQYO7YFSV0WGCqAa20l9aG0" ; ret += "G2wo29EN4AkhMyzBU049xUfB1AyK6CTJ2SBp9rbpBTjD0IAE5R3OsxyfuR6sdH8O9MgFUwrfmZDp" ; ret += "ZPdSm7MIDuyDEwOxbdusnfY2gv8cvy0fn/uoqVDHXTFAdclZ4YVvoC7x+RhObv/xCczH9lAEgFmg" ; ret += "XtsIDEVY8w66VlvuAjKqwgwHx6wwPjxenBs1Aruhzi/Da64F8LsuKvzucdYvJhoAnoSoRVzMD/I6" ; ret += "vX9YLVA9IfksJeGbrMisuCEFIe/HeKP5Y/TYkKeL/634IxB9j3+3+hsAAP//AwBQSwMEFAAGAAgA" ; ret += "AAAhADLAIrf4AQAARwUAABIAAAB3b3JkL2ZvbnRUYWJsZS54bWyskktu2zAQhvcFegeC+1iU/IwQ" ; ret += "OWicGChQdFGkB6BpSiIqkgJJ2/HW2XfdRXuGbgo09zHgc3RESXk5QW20ow35D+fDzK85O7+RBVpy" ; ret += "Y4VWCQ47BCOumJ4LlSX48/X0ZISRdVTNaaEVT/CaW3w+fvvmbBWnWjmLoF7ZWLIE586VcRBYlnNJ" ; ret += "bUeXXEEy1UZSB1eTBZKaL4vyhGlZUidmohBuHUSEDHCDMYdQdJoKxi81W0iunK8PDC+AqJXNRWlb" ; ret += "2uoQ2kqbeWk049bCzLKoeZIKdY8Je3sgKZjRVqeuA8M0HXkUlIfEn2TxAOgfB4j2AAPLj0P0G0Rg" ; ret += "15LfYCRZ/D5T2tBZASQYCUFXyIPxuPmZaBUrKiG9u7vbffu6+/7Dp0qqtOUhZJe0SDCJ4OuRJ4GD" ; ret += "6iHLqbG8wviHo0ZOqRTFulWNllTViVI4lrf6khpRNVenrMggsbAzUnEgoqshrpUwwdG7yXA6mU4b" ; ret += "JYKmfIRRo3RbBVoDhXlORSHk1Fcxz3ncflB7sOfFtZDcoo98hT75zl9zZEC6pA++9OHcJb0XHWmN" ; ret += "+ldHrrwh9/PDJBNQhqPexXNHyOlfHAHTas7hjsB2bDe/tpvf29vb7eYn+iCy3L3iywV48SSO2BSp" ; ret += "59wcbwyJHhvjV+XyhVUZ/IdVaQ52/AcAAP//AwBQSwMEFAAGAAgAAAAhACrRNL5cAQAAmwIAABAA" ; ret += "IAFkb2NQcm9wcy9hcHAueG1sIKIcASigAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" ; ret += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAnFLBagIxEL0X+g/L3jWrtCJljBSl9FCKsKueQzLuhu4mIYmi" ; ret += "f99ZVteV3prTvDfJm/eGwPLc1MkJfdDWLNLJOEsTNNIqbcpFui0+RvM0CVEYJWprcJFeMKRL/vwE" ; ret += "G28d+qgxJCRhwiKtYnRvjAVZYSPCmNqGOgfrGxEJ+pLZw0FLXFt5bNBENs2yGcNzRKNQjVwvmHaK" ; ret += "b6f4X1FlZesv7IqLI8McCmxcLSLy79ZOPVY2NsB6FgobRV3oBnlGdA9gI0oMfAKsK2BvvSKcEdOV" ; ret += "sKqEFzLSBvnrfApsgIGS5iiPXsdLqzuE8KUNKb8A6wqa5EXphauu43oEuRQ1rigOP4g6ILA7ASvb" ; ret += "OGEunObeKtL7CVtX2HWb9/rkkRyY3utY5U5I8jJ7tD/oQE4hUZH/m96dgE9asa/boRTdlKhud/42" ; ret += "4N25XffX+GQ2zugAG3C05v4T8F8AAAD//wMAUEsBAi0AFAAGAAgAAAAhAGdzKC+XAQAAKAkAABMA" ; ret += "AAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAAACEAHpEat+8A" ; ret += "AABOAgAACwAAAAAAAAAAAAAAAADQAwAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAAACEAxaqym0AB" ; ret += "AAA9BwAAHAAAAAAAAAAAAAAAAADwBgAAd29yZC9fcmVscy9kb2N1bWVudC54bWwucmVsc1BLAQIt" ; ret += "ABQABgAIAAAAIQA9daQx7gYAAOIVAAARAAAAAAAAAAAAAAAAAHIJAAB3b3JkL2RvY3VtZW50Lnht" ; ret += "bFBLAQItABQABgAIAAAAIQANeEnX9AEAACwHAAASAAAAAAAAAAAAAAAAAI8QAAB3b3JkL2Zvb3Ru" ; ret += "b3Rlcy54bWxQSwECLQAUAAYACAAAACEAlMV3t8UBAAAyBgAAEAAAAAAAAAAAAAAAAACzEgAAd29y" ; ret += "ZC9oZWFkZXIzLnhtbFBLAQItABQABgAIAAAAIQB+aChlwwEAADIGAAAQAAAAAAAAAAAAAAAAAKYU" ; ret += "AAB3b3JkL2Zvb3RlcjIueG1sUEsBAi0AFAAGAAgAAAAhAH5oKGXDAQAAMgYAABAAAAAAAAAAAAAA" ; ret += "AAAAlxYAAHdvcmQvZm9vdGVyMS54bWxQSwECLQAUAAYACAAAACEAfmgoZcMBAAAyBgAAEAAAAAAA" ; ret += "AAAAAAAAAACIGAAAd29yZC9mb290ZXIzLnhtbFBLAQItABQABgAIAAAAIQCUxXe3xQEAADIGAAAQ" ; ret += "AAAAAAAAAAAAAAAAAHkaAAB3b3JkL2hlYWRlcjEueG1sUEsBAi0AFAAGAAgAAAAhAJTFd7fFAQAA" ; ret += "MgYAABAAAAAAAAAAAAAAAAAAbBwAAHdvcmQvaGVhZGVyMi54bWxQSwECLQAUAAYACAAAACEAZsJg" ; ret += "TPQBAAAmBwAAEQAAAAAAAAAAAAAAAABfHgAAd29yZC9lbmRub3Rlcy54bWxQSwECLQAUAAYACAAA" ; ret += "ACEApBZUmN0GAADXIAAAFQAAAAAAAAAAAAAAAACCIAAAd29yZC90aGVtZS90aGVtZTEueG1sUEsB" ; ret += "Ai0AFAAGAAgAAAAhAEM7jD20BAAA0QwAABEAAAAAAAAAAAAAAAAAkicAAHdvcmQvc2V0dGluZ3Mu" ; ret += "eG1sUEsBAi0AFAAGAAgAAAAhAMbJqcoBDAAAi3QAAA8AAAAAAAAAAAAAAAAAdSwAAHdvcmQvc3R5" ; ret += "bGVzLnhtbFBLAQItABQABgAIAAAAIQCTdtZJGAEAAEACAAAUAAAAAAAAAAAAAAAAAKM4AAB3b3Jk" ; ret += "L3dlYlNldHRpbmdzLnhtbFBLAQItABQABgAIAAAAIQBeV3f+XQEAALsCAAARAAAAAAAAAAAAAAAA" ; ret += "AO05AABkb2NQcm9wcy9jb3JlLnhtbFBLAQItABQABgAIAAAAIQAywCK3+AEAAEcFAAASAAAAAAAA" ; ret += "AAAAAAAAAIY8AAB3b3JkL2ZvbnRUYWJsZS54bWxQSwECLQAUAAYACAAAACEAKtE0vlwBAACbAgAA" ; ret += "EAAAAAAAAAAAAAAAAACuPgAAZG9jUHJvcHMvYXBwLnhtbFBLBQYAAAAAEwATALQEAABYQQAAAAA=" ; return ret; } |
実行画面
おわりに
コードと実行画面を見ると分かる通り、画像や文書の挿入、文字列装飾や検索など、基本的な処理が短いコードで実行できます。
「WordJs_1.3_Openspec」ではWord JavaScript API Version 1.3の概要が載っていて、これを見ると新たにドキュメントの作成(createDocumentメソッド)やテーブルの追加(insertTableメソッド)機能が追加されるようですが、現時点(2016/6/2 時点)ではまだ機能が追加されていないようでした。
今後ますます便利になるであろうOffice アドイン、みなさんも是非開発してみてください!
この記事へのコメントはありません。